每当在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/