每当在length参数上提供浮点数时,truncate函数都会产生范围错误,并迫使我解析整数。当我想获得文件大小的一小部分时,这不够精确。

fs.truncate(filePath, stats.size/2,(err)=>{
  if(err) throw err
})



  RangeError [ERR_OUT_OF_RANGE]:“ len”的值超出范围。它
  必须为整数。收到513.5
      在Object.truncate(fs.js:613:3)


这迫使我使用

fs.truncate(filePath, parseInt(stats.size/2),(err)=>{
  if(err) throw err
})

最佳答案

为什么“ fs”模块上的truncate函数仅适用于整数


因为文件长度仅以整数指定。文件长度中没有小数字节。您不能有2.5字节长的文件。

如果不传递整数,则不清楚您要执行的操作的含义。由于文件只能是整数,您是否希望将十进制值四舍五入?还不清楚因此,您必须准确指定所需的内容。

仅供参考,parseInt()并不是真正适合使用的函数。您应该使用Math.round()Math.floor()Math.ceil()取决于您想要的行为。

关于node.js - 为什么“fs”模块上的truncate函数仅适用于整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57933267/

10-12 00:08
查看更多