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

JavaScript;四舍五入,将点改为逗号,并在三位数后设置点,javascript,calculator,comma,Javascript,Calculator,Comma,我有如下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] optio

我有如下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);
这将计算我将输出的内容。我需要做三件事

  • 更改为
    <代码>123,45而不是
    123.45
  • 四舍五入“业务”,逗号后面的数字是:
    123,46,而不是
    12345738
  • 在逗号前三位数字后设置逗号<代码>1.234,45而不是
    1234,45
  • 我用
    toFixed(2)
    做的第二件事。我尝试的第一件事是在末尾添加
    replace(“,”,“)
    。但是这样做,我没有得到任何输出


    谁能帮助我?

    您需要将数字转换为字符串,以执行访问字符串的方法,如
    替换

    var final_value = (42).toFixed(2).replace('.', ','); // excess code truncated
    
    此外,您可能还需要验证您的操作顺序。明智的做法是为那些元素
    数据
    值指定变量名。验证等式中的部分实际上是数字也是明智的。如果其中任何一组数据未定义,则可能会返回NaN,这将破坏整个表达式


    希望这有助于您进一步了解第三个需求。

    这真的与您有7个长jQuery选择器的问题相关吗?“你能把这个问题归结为字符串操作的本质吗?”大卫:没问题,解决方案往往是在问了一个问题之后出现的。