Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字节转换为TB返回不正确的值_Javascript - Fatal编程技术网

Javascript 将字节转换为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

目前我有一个将字节转换为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等于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