gpt4 book ai didi

javascript 数学,以 .05 为增量四舍五入到小数点后两位

转载 作者:行者123 更新时间:2023-11-30 13:28:49 24 4
gpt4 key购买 nike

我提前道歉。我通读了很多帖子,我确信答案在于实现 toFixed() 方法,但不知道如何实现。

$('.addsurcharge').click(function() {               
$('span.depositamount').text(function(i,v) {
return Math.round(parseInt(v * 100, 10) * 0.025) / 100 + (v * 1);
});
});

$('.nosurcharge').click(function() {
$('span.depositamount').text(function(i,v) {
return Math.round(parseInt(v * 100, 10) * -0.025) / 100 + (v * 1);
});
});

基本上,上面是对 AMEX 存款增加(或减少)2.5% 的附加费,我希望它四舍五入到最接近的两位小数。最好以 0.05 增量。

感谢帮助!

最佳答案

货币最简单的方法是以小单位计算,然后四舍五入,最后才转换为大单位。所以对于一个有美元和美分的系统,直到最后都以美分计算,然后转换为美元。如果要输入的文本的格式为“2.03”,则它可以使用类似以下内容将其四舍五入到最接近的 $0.05:

function roundToFiveCents(v) {

// Turn dollars into cents and convert to number
var len;
v = v * 100;

// Get residual cents
var r = v % 5;

// Round to 5c
if (r) {
v -= (r == 1 || r == 2)? r : r-5;
}

// Convert to string
v = v + '';
len = v.length - 2;

// Return formatted string
return v.substring(0, len) + '.' + v.substring(len);
}

那可以更简洁,但我看不出重点,它只会混淆。字符串操作非常快,用简单的加减法代替了 javascript 小数乘法和除法的不确定性。

例如借用 rfausak 的回答:

// Returns string, remove ' + ''' to return number
function roundToFiveCents(v) {
return (Math.round(v*20)/20).toFixed(2) + '';
}

关于javascript 数学,以 .05 为增量四舍五入到小数点后两位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7510107/

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