将浮点数(未四舍五入)截断为小数点后两位

Truncate float (not rounded) to 2 decimal places

拜托,我需要将 String 转换为 FloatDouble in Javascript.但我不想让它变圆。我只想固定 2 个小数位 Number 这意味着输入 0.996 return me 0.99 和不是 1.

// 1. Convert number to float strip to 2 decimal places
var total = ',996' // (or 0.996 if you want, doesn't matter)
total = Math.round(parseFloat(
                   total.replace (',', '.')
)).toFixed(2);

console.log ( typeof total );
console.log ( total );

此后,total 不再是一个数字。这是一个值为 1

的字符串

是否可以将字符串转换为具有 2 个固定位置的十进制数而不四舍五入?

如果你对 simple spent manager 感兴趣,我在这里编程 https://codepen.io/littleTheRabbit/pen/JjYWjRG

非常感谢您的任何建议

此致

这可以通过使用乘法和除法删除不需要的额外数字来完成。比如你想让0.994变成0.99,你可以乘以100(覆盖2个小数位),然后截去这个数,再除以100到原来的小数位。

示例:

  0.994 * 100 = 99.4
  99.4 truncated = 99.0
  99.0 / 100 = 0.99

所以这里有一个函数可以做到这一点:

const truncateByDecimalPlace = (value, numDecimalPlaces) =>
  Math.trunc(value * Math.pow(10, numDecimalPlaces)) / Math.pow(10, numDecimalPlaces)

console.log(truncateByDecimalPlace(0.996, 2)) // 0.99