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

    xiaoxiao2025-08-27  17


    本文代码可在我的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; } }
    转载请注明原文地址: https://ju.6miu.com/read-1302032.html
    最新回复(0)