У меня есть функция 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);
}
Функция отлично работает на любом компьютере с английской ОС. Например, если я введу значения 0,2, 0,4 и 0,4 для val01, val02 и val03 в форме, в поле sumvals отображается 1.000
Однако на компьютере с итальянской или немецкой ОС, если я введу в форму те же значения 0,2, 0,4 и 0,4 для val01, val02 и val03, в поле sumvals отображается 10000.000
Я думаю, это как-то связано с тем, что некоторые неанглийские ОС интерпретируют точки и запятые в числах. Однако, если я попытаюсь заменить запятые на периоды, когда я введу значения в текстовое поле (например, 0,4), тогда поле переключится на 0, как только я уберу фокус с него.
Я проверил несколько сайтов, посвященных i18n, для javascript, но я не могу найти ничего, что связано с этим конкретным вопросом, или, по крайней мере, я не распознал его как таковой.
Может кто-нибудь помочь мне с обходным решением, которое легко интерпретирует переменные javascript на родном языке операционной системы (если это действительно проблема)?