gpt4 book ai didi

javascript - 单击事件后输入值内保留 2 位小数

转载 作者:行者123 更新时间:2023-12-01 02:55:22 25 4
gpt4 key购买 nike

FIDDLE

添加和减去 float 时出现问题。

如果从 0.2 开始

0.2 + 0.2 = 0.4

0.4 + 0.2 = 0.6000000000000001(应该是 0.6)

我发现我必须使用“toFixed(2)”,但这是针对字符串的?为了使其正常运行,我必须更改代码:

// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
e.preventDefault();
var arrayData = $(this).data('field-qty');
var arr = arrayData.split(';');
for (i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
fieldName = arr[0];
var currentVal = parseFloat($('input[name='+fieldName+']').val());
var minimalVal = parseFloat($('input[name='+fieldName+']').attr("data-minimal_quantity"));

if (!isNaN(currentVal) && currentVal < minimalVal) {
$('input[name='+fieldName+']').val(minimalVal);
$(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",minimalVal);
}
else {
$('input[name='+fieldName+']').val(currentVal + parseFloat(arr[1])).trigger('keyup');
$(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",currentVal + parseFloat(arr[1]));
}

$('#'+fieldName).change();



});

最佳答案

您遇到的问题是由于 float 存储信息的方式造成的。如果您需要使用精确的小数位数,我建议您使用整数并格式化输出以将最后 n 个位置反射(reflect)为小数。

例如,使用 2 位小数,1.00 实际上是 100

0.2 + 0.2 = 0.4 将完成为 20 + 20 = 40

要将其打印给用户,您可以将整数值解析为字符串,并将输出格式化为 "0.40" (字符串)

关于javascript - 单击事件后输入值内保留 2 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738518/

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