目前,我有一个将字节也转换为TB的函数。
我正在使用以下公式进行转换。
const formatBytesToTB = (a, b = 2) => {
if (a === 0) {
return "0 TB";
}
return (a / 1099511627776).toFixed(b) + " TB";
};
console.log(formatBytesToTB(109213384704));
上面的函数对于它接受为字节的大多数值都可以正常工作
当字节值小于1 TB时,我看到一些错误。
例如,当输入为“ 109213384704”时,该函数将返回“ 0.10 TB”
预期输出应为“ 0.09”
我看到很少有在线转换器可以测试它们返回的内容,Google返回0.10,但其余转换器显示0.09
该函数在做正确的事吗?
答案 0 :(得分:1)
109213384704
是Tebibyte
(TiB)中的0.099和0.10 Terrabyte
(TB)中的。
来自definitions:
TB大小是多少? 一个tebibyte大于以下二进制数据容量度量:
答案 1 :(得分:1)
似乎只是显示问题-舍入还是忽略精度值后的小数。
109213384704 / 1099511627776
的值为0.099328995
因此,如果您只想忽略第二个小数点后的内容,则会得到0.09
。
但是,toFixed
会将数字四舍五入为精度值,因此0.099
将得出0.10
,而0.091
将得出0.09
。