您的位置:首页 > 其它

二进制小数

2016-04-18 18:45 218 查看


题目描述

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

给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。
测试样例:
0.625
返回:0.101
import java.util.*;

public class BinDecimal {
public String printBin(double num) {
// write code here
if(num<=0||num>=1) return "Error";
StringBuffer res = new StringBuffer("0.");
int cnt = 0;
while(cnt<=32&&num>0){
num = num*2;
if(num>=1){
res.append('1');
num-=1;
}else{
res.append('0');
}
++cnt;
}
if(res.length()>32){
return "Error";
}else{
return res.toString();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: