2016-02-05 1 views

ответ

3

parseFloat("2,83") вернет 2, потому что , не распознается как десятичный разделитель, а . есть.

Если вы хотите, чтобы округлить число до 2 знаков после запятой просто использовать parseFloat(discval.toFixed(2)) или Math.round(discval * 100)/100;

Если вам нужен холмик для целей отображения, а затем оставить его в виде строки с запятой. Вы также можете использовать Number.toLocaleString() для форматирования чисел для отображения. Но вы не сможете использовать его в дальнейших расчетах.

BTW .toFixed() возвращает строку, поэтому после этого не нужно использовать .toString().

+0

Да, вам действительно нужно знать, почему вы хотите изменить точку запятой. Возможно, что-то другое, кроме демонстрационных целей, является неправильным подходом. – KjetilNordin

3

От https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

parseFloat разбирает свой аргумент, строку, и возвращает с плавающей запятой номер. Если он встречает символ, отличный от знака (+ или -), цифра (0-9), десятичная точка или показатель степени, она возвращает значение до этой точки и игнорирует этот символ и все последующие символов. Допускаются ведущие и конечные пробелы.

Если первый символ не может быть преобразован в число, parseFloat возвращает NaN.

, не является ожидаемым персонажем, поэтому число обрезается до этого.

Невозможно изменить представление чисел с плавающей запятой в Javascript, вам нужно будет обрабатывать свой номер в виде строки, если вы хотите отделить десятичные знаки запятой, а не точкой.

-1

Это должно быть сделано.

var string = '' + discval; string.replace ('.', ',');

Но учтите, что результатом является строка, а не число с плавающей точкой.

Смежные вопросы