JavaScript; Округлите, измените точку на запятую и установите точку после трех цифр

У меня есть код JavaScript, как это:

var final_value = ($('select[name=somevalue1] option:selected').data('calc')-($('select[name=somevalue1] option:selected').data('calc')/100*$('select[name=somevalue2] option:selected').data('calc'))-($('select[name=somevalue1] option:selected').data('calc')-($('select[name=somevalue1] option:selected').data('calc')/100*$('select[name=somevalue2] option:selected').data('calc')))/100*$('select[name=somevalue3] option:selected').data('calc')).toFixed(2);

Это вычислит что-то, что я выведу. Мне нужно сделать три вещи.

  1. + Изменить . в ,; 123,45 вместо 123.45
  2. Раунд "для бизнеса", цифры после запятой: 123,46 вместо 123,45738
  3. Установите запятую после трех цифр перед запятой; 1.234,45вместо 1234,45

Второе, что я сделал с toFixed(2), Первое, что я попробовал с добавлением replace(",",".") в конце. Но при этом я не получаю вывод.

Кто может мне помочь?

1 ответ

Решение

Вам нужно будет преобразовать число в строку, чтобы получить доступ к таким строковым методам, как replace,

var final_value = (42).toFixed(2).replace('.', ','); // excess code truncated

Также вы можете проверить свой порядок операций. Было бы целесообразно присвоить имена переменных этим элементам data ценности. Также было бы разумно проверить, что части вашего уравнения на самом деле являются числами. Если какой-либо из наборов данных не определен, вы, скорее всего, в конечном итоге вернете NaN, что испортит все ваше выражение.

Надеюсь, это поможет вам перейти к третьему требованию.

Другие вопросы по тегам