您的位置:首页 > 其它

打印0-1之间double数字的二进制表示

2014-08-23 15:58 190 查看
思路:依次减去 0.5,0.25,0.125。。。 够减二进制为1,不够减二进制为0。

public class Solution {

public static String printBinary(double num) {
if (num >= 1 || num <= 0)
return "ERROR";

StringBuilder res = new StringBuilder();
res.append('.');
double frac = 0.5;
while (num > 0) {
if (res.length() >= 32)
return "ERROR";

if (num >= frac) {
res.append(1);
num -= frac;
} else {
res.append(0);
}
frac /= 2;
}

return res.toString();

}

public static void main(String[] args) {
System.out.println(printBinary(0.875));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐