您的位置:首页 > 其它

判断小数能否用32位二进制精确的表示

2016-08-15 13:24 218 查看
本文代码可在我的github中BinDecimal.java中找到。

题目描述:

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

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

思路分析:

一位一位的判断,判断一位去掉一位。并且另起一个字符串进行表示。

代码:

package newcoder;

public class BinDecimal
{
public String printBin(double num)
{
String res = "0.";
double base = 0.5;

while (num > 0)//继续判断的条件就是num依然存在
{
if (num >= base)//判断某位是用1还是用0表示
{
res += "1";
num -= base;
} else
res += "0";

base /= 2;//移动一位

if (res.length() > 34)//“0.”占2个字符位置。
{
res = "Error";
break;
}
}

return res;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: