gpt4 book ai didi

Javascript国际计算?

转载 作者:行者123 更新时间:2023-11-29 15:48:49 25 4
gpt4 key购买 nike

我有一个 javascript 函数,它从表单中的文本字段获取三个值,对它们求和,并在表单中显示总和:

function sumVals(theForm) {
var sum = 0.0;
sum += parseFloat(theForm.val01.value);
sum += parseFloat(theForm.val02.value);
sum += parseFloat(theForm.val03.value);
theForm.sumvals.value = sum.toNiceFixed(4);
}

该功能在任何带有英文操作系统的计算机上都能正常工作。例如,如果我在表单中为 val01、val02 和 val03 输入值 0.2、0.4 和 0.4,则总和字段显示 1.000

但是,在意大利语或德语操作系统的计算机上,如果我在表单中为 val01、val02 和 val03 输入相同的值 0.2、0.4 和 0.4,sumvals 字段将显示 10000.000

我认为这与某些非英语操作系统解释数字中的句号和逗号的方式有关。但是,如果我在文本字段中输入值(例如 0,4)时尝试用逗号替换句点,那么一旦我将焦点从它移开,该字段就会切换为 0。

我查看了很多处理 javascript 国际化的网站,但我找不到任何处理这个特定问题的内容,或者至少我没有意识到这一点。

任何人都可以帮我解决一个可以轻松地用操作系统的 native 语言解释 javascript 变量的变通方法(如果这确实是问题所在)?

最佳答案

function toFloat(value) {
return parseFloat(value.replace(',','.'));
}
function sumVals(theForm) {
var sum = 0.0;
sum += toFloat(theForm.val01.value);
sum += toFloat(theForm.val02.value);
sum += toFloat(theForm.val03.value);
theForm.sumvals.value = sum.toNiceFixed(4);
}

关于Javascript国际计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186616/

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