我在这个脚本上有错误。计算系统有效,但有错误:
$(document).ready( function() {
$("#total").val("55.95");
$("#amount").val("512MB");
$("#amount1").val("512MB");
$("#amountb").val("10GB");
$("#amount2").val("10GB");
$( function() {
var ram = {
0: "512MB",
1: "1GB",
2: "2GB",
3: "4GB",
4: "8GB",
5: "16GB",
6: "32GB",
};
var pram = {
0: "49.95",
1: "89.95",
2: "149.95",
3: "32",
4: "64",
5: "128",
6: "256",
}
var hdd = {
0: "10GB",
1: "15GB",
2: "20GB",
3: "25GB",
4: "30GB",
5: "35GB",
};
var phdd = {
0: "49.95",
1: "99.95",
2: "100.95",
3: "49.14",
4: "28",
5: "40",
}
$("#slider").slider({
value: "0",
min: 0,
max: 6,
step: 0,
slide: function(event, ui) {
$("#price").val(pram[ui.value]);
$("#amount").val(ram[ui.value]);
$("#amount1").val(ram[ui.value]);
var aaa = $("#price").val();
var bbb = $("#priceb").val();
$("#total").val(+aaa + +bbb);
}
});
$("#sliderb").slider({
value: "0",
min: 0,
max: 5,
step: 1,
slide: function(event, ui) {
$("#priceb").val(phdd[ui.value]);
$("#amountb").val(hdd[ui.value]);
$("#amount2").val(hdd[ui.value]);
var aaa = $("#price").val();
var bbb = $("#priceb").val();
$("#total").val(+aaa + +bbb);
}
});
$("#price").val('$' + $("#slider").slider("value"));
$("#priceb").val('$' + $("#slider").slider("value"));
$("#price").val("4");
$("#priceb").val("3");
}
);
});
如果我计算49.95 + 149.95,结果是199.89999995,结果是199.9 我不知道该怎么办。请帮帮我
答案 0 :(得分:2)
请勿对货币数据使用浮点值。保持您的价格美分并相应地格式化演示文稿的数字。 Floats always have a rounding error
如果您使用美分,如果您想以美元(或任何其他货币)显示价值,您所要做的就是除以100
:
var total = 4495 + 14995;
var display = total / 100;
$("#total").val(display);
答案 1 :(得分:0)
返回格式化货币的函数应该舍入到2.d.p,例如
var symbol="$ ";
var p1 = 49.95;
var p2 = 149.95;
var sum = p1+p2;
return symbol+sum.toFixed(2); //just return the sum to 2 decimal places
答案 2 :(得分:0)
假设您希望199.89999995
为199.9
,请尝试:
var x = 49.95 + 149.95;
Math.ceil(x *10) / 10; // 199.9
如果这是舍入误差,那么除了费利克斯金所建议的以外,没有什么可以做的。