## 题目
0~1间浮点实数的二进制表示
给定一个介于0和1之间的实数,返回它的二进制表示。
如果该数字无法精确地用32位以内的二进制表示,则返回 "ERROR"
。
示例 1:
输入: num = 0.625
输出: "0.101"
解释: 0.625 小数部分的二进制分别表示为 0.5 0.25 0.125
示例 2:
输入: num = 0.3
输出: "ERROR"
解题
方法一:模拟
思路
乘2挪整
代码
class Solution {
public String binaryDecimal(double num) {
StringBuilder sb = new StringBuilder("0.");
while (num > 0) {
num *= 2;
if (num >= 1) {
sb.append("1");
num--;
} else sb.append("0");
if (sb.length() > 34) return "ERROR";
}
return sb.toString();
}
}
评论区