Javascript 将字节转换为TB返回不正确的值
目前我有一个将字节转换为TB的函数 我使用下面的公式来转换Javascript 将字节转换为TB返回不正确的值,javascript,Javascript,目前我有一个将字节转换为TB的函数 我使用下面的公式来转换 constformatbytestotb=(a,b=2)=>{ 如果(a==0){ 返回“0 TB”; } 返回(a/109951162776); }; log(formatBytesToTB(109213384704))109213384704为0.099英寸Tebibyte(TiB)和0.10英寸Terrabyte(TB) 发件人: 一个三角帆有多大? tebibyte大于以下二进制数据容量度量值: 字节——TiB等于10995
constformatbytestotb=(a,b=2)=>{
如果(a==0){
返回“0 TB”;
}
返回(a/109951162776);
};
log(formatBytesToTB(109213384704))代码>109213384704
为0.099英寸Tebibyte
(TiB)和0.10英寸Terrabyte
(TB)
发件人:
一个三角帆有多大?
tebibyte大于以下二进制数据容量度量值:
- 字节——TiB等于109951162776字节
- 一个KiB字节(KiB)——一个TiB等于1073741824 KiB
- 兆字节(MiB)–兆字节等于1048576兆字节
- GiB字节——TiB等于1024 GiB
109213384704
为0.099英寸Tebibyte
(TiB)和0.10英寸Terrabyte
(TB)
发件人:
一个三角帆有多大?
tebibyte大于以下二进制数据容量度量值:
- 字节——TiB等于109951162776字节
- 一个KiB字节(KiB)——一个TiB等于1073741824 KiB
- 兆字节(MiB)–兆字节等于1048576兆字节
- GiB字节——TiB等于1024 GiB
这似乎是一个显示问题——舍入还是忽略精度值后的小数点
109213384704/109951162776的值为0.099328995
因此,如果您只想忽略第二个小数点后的内容,您将得到0.09
但是,toFixed
会将数字四舍五入到精度值,因此0.099
将得到0.10
,而0.091
将得到0.09这似乎是一个显示-四舍五入与忽略精度值后的小数点的问题
109213384704/109951162776的值为0.099328995
因此,如果您只想忽略第二个小数点后的内容,您将得到0.09
但是,toFixed
将把数字四舍五入到精度值,因此0.099
将得到0.10
,而0.091
将得到0.09从技术上讲,如果我没有错的话,应该是0.099
。使用.toPrecision
而不是.toFixed
怎么样?将b
增大,如10,然后查看。似乎舍入问题ToFixed做的是正确的,因为数字是0.099,但您只需要前两位数字,因此0.099被舍入到0.10,以说明x.xx9无法显示-如果您想要截断而不是舍入,非常确定可以通过一点toString+子字符串技巧来完成,虽然可以找到更多关于toFixed奇怪行为的信息,也可以从技术上找到好的答案,但如果我没有错的话,应该是0.099
。使用.toPrecision
而不是.toFixed
怎么样?将b
增大,如10,然后查看。似乎舍入问题ToFixed做的是正确的,因为数字是0.099,但您只需要前两位数字,因此0.099被舍入到0.10,以说明x.xx9无法显示-如果您想要截断而不是舍入,非常确定可以通过一点toString+子字符串技巧来完成,虽然可以找到更多关于toFixed奇怪行为的信息,也可以找到好的答案,但我想舍入到小数点后2位,但仍然返回准确的结果,我认为精度也不起作用。还有其他选择吗?当前行为是更准确的选择,因为0.099
更接近0.10
,然后接近0.09
。在这方面,如果使用toPrecision
或toFixed
则没有什么不同。我想舍入到小数点后2位,但仍然返回准确的结果,我认为toPrecision也不起作用。还有其他选择吗?当前行为是更准确的选择,因为0.099
更接近0.10
,然后接近0.09
。在这方面,如果使用toPrecision
或toFixed