【程序员面试金典】有一个介于0和1之间的实数,类型为double,返回它的二进制表示。

题目描述

有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。

给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。

测试样例:

0.625
返回:0.101

class BinDecimal {
public:
    string printBin(double num) {
        // write code here
        string res="0.";
        int cnt=32;
        while(cnt--&&num>0.00001){
            num*=2;
            int c=num;
            num-=c;
            res+=(c+48);
        }
        return cnt>0?res:"Error";
    }
};

猜你喜欢

转载自blog.csdn.net/hellozex/article/details/81141460
今日推荐