【发布时间】:2019-03-28 00:03:58
【问题描述】:
我有这个十进制数:1.12346
我现在只想保留 4 位小数,但我想向下舍入以返回:1.1234。现在它返回:1.1235,这是错误的。
有效。我想要最后 2 个数字:“46”向下舍入到“4”而不是“5”
这怎么可能?
var nums = 1.12346;
nums = MathRound(nums, 4);
console.log(nums);
function MathRound(num, nrdecimals) {
return num.toFixed(nrdecimals);
}
【问题讨论】:
-
所以你不希望它变圆,你希望它被切断。您这样做的唯一原因是将其显示为字符串,否则从那时起您的所有数学运算都会出错,所以:这是成为字符串的想法吗?
-
是的,我希望它向下舍入:1.1234,而不是像现在这样的 1.1235。我想将其保留为数字而不是字符串。 (你是对的,在某种程度上它会“切断” 4 之后的其他数字)
-
为了防止XY problem,你在做什么让你觉得你需要截掉小数点后第四位的数字?
-
“舍入”一词在这里并不准确,因为您仍想保留小数部分。乘以 10000,调用
Math.floor(),然后除以 10000。请注意,您可能仍需要调用.toFixed(),因为小数位和二进制浮点数并不总是一致的。
标签: javascript rounding floor