以下是示例:
例如,假设我们有一个浮点13.4
。在二进制文件中,它可以写成:1101.01100110011001100110011001100110011兮
。
假设系统存储的位数最多为10
小数位。因此13.4
存储为:1101.0110011001
(现在只有10
个小数位)
由于此更改,如果您将1101.0110011001
转换回基础10
,则会获得13.399414
。本质上13.399414
存储而不是13.4
在这种情况下!
因此,给定基10
中的浮点,整数n
表示上面定义的小数位数,将浮点数的存储值输出到三位小数。
那么如何使用javascript进行转换: - 输入13.4
并输出13.399
答案 0 :(得分:0)
取消@Jaromanda X的评论
function cut(num, base, len) {
base = Math.pow(2, base);
return (parseInt((num * base).toString(2), 2) / base).toFixed(len);
}
答案 1 :(得分:0)
您可以通过将该数量的位数向左移动来获得具有所需小数位数的数字,通过将其放置在右侧来删除剩余数字,并将其向右移动。这适用于你的情况下的任何基地2:
Math.floor(13.4 * 2**10) / 2**10
Math.floor(13.4 * Math.pow(2, 10)) / Math.pow(2, 10)
Math.floor(13.4 * (1<<10)) / (1<<10)