gpt4 book ai didi

javascript - 将浮点值 chop (不四舍五入)至小数点后两位

转载 作者:行者123 更新时间:2023-12-02 20:57:51 25 4
gpt4 key购买 nike

拜托,我需要将 Javascript 中的 String 转换为 FloatDouble 。但我不希望它围绕它。我只想固定 2 个小数位 Number,这意味着输入 0.996 返回我 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 的字符串

是否可以将字符串转换为固定两位的十进制数而不进行四舍五入?

如果您对简单的花费管理器感兴趣,我在这里对其进行编程 https://codepen.io/littleTheRabbit/pen/JjYWjRG

非常感谢您的建议

致以诚挚的问候

最佳答案

这可以通过使用乘法和除法删除不需要的额外数字来完成。例如,如果您希望 0.994 为 0.99,则可以乘以 100(覆盖 2 位小数),然后 chop 该数字,然后将其除以 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

关于javascript - 将浮点值 chop (不四舍五入)至小数点后两位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61428269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com