JavaScript;四舍五入,点号改为逗号,三位数后设置点号

JavaScript; Round, change dot to comma, and set dot after three digits

我有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. Round "for business",逗号后面的数字:123,46 而不是 123,45738
  3. 在逗号前三位数字后设置一个逗号; 1.234,45而不是1234,45

我用 toFixed(2) 做的第二件事。我尝试在末尾添加 replace(",",".") 的第一件事。但是这样做,我没有得到任何输出。

谁能帮帮我?

您需要将数字转换为字符串才能执行访问字符串方法,例如replace

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

您可能还想验证您的操作顺序。将变量名称分配给这些元素 data 值是明智的。验证等式的部分实际上是数字也是明智的。如果任何一组数据未定义,您最终可能会返回 NaN,这会破坏您的整个表达式。

希望这能帮助您完成第 3 个要求。