如何在javascript中使用千点分隔符计算数字

如何在javascript中使用千点分隔符计算数字,javascript,php,math,numbers,number-formatting,Javascript,Php,Math,Numbers,Number Formatting,我使用php数字格式转换了数字,如下所示: number_format($X, 2, ',', '.'); 哪一个转变了 5000000 进入 这正是我想要的 但现在,我的javascript函数正在对这些数字进行一些基本计算,结果是错误的,例如: 5.000.000,00 - 3.500.000,00 = 1.5 instead of 1.500.000,00 <span id="myNumber" data-value="<?=$X?>"><?=numbe

我使用php数字格式转换了数字,如下所示:

number_format($X, 2, ',', '.');
哪一个转变了

5000000
进入

这正是我想要的

但现在,我的javascript函数正在对这些数字进行一些基本计算,结果是错误的,例如:

5.000.000,00 - 3.500.000,00 = 1.5 instead of 1.500.000,00
<span id="myNumber" data-value="<?=$X?>"><?=number_format($X, 2, ',', '.')?></span>
那么,如何在javascript中正确计算这些数字呢

我真的很感激能得到的任何帮助


谢谢大家,格式化的数字是人眼的,不适合JS处理。您可能希望按照HTML格式编写数字并在客户端进行格式化,或者为原始值添加单独的数据属性

例如:

5.000.000,00 - 3.500.000,00 = 1.5 instead of 1.500.000,00
<span id="myNumber" data-value="<?=$X?>"><?=number_format($X, 2, ',', '.')?></span>
或jQuery:

var X = parseInt($("#myNumber").attr("data-value"), 10);

删除所有的文件。并替换为。。然后用parseInt解析字符串,将其转换为一个数字进行计算。或者如果您想使用@Derek朕會功夫's回答:您可以始终向JS传递2个数字。第一个是格式化的值,第二个是实际值。@Derek朕會功夫 这是一个可怕的建议。它引入了一种硬编码的采用,由于明显的原因很容易失败。数字\格式调用通常是本地化层的一部分,因此不会以固定方式格式化。我建议您将未格式化的数字作为数据属性添加到格式化的数字字符串中,您可能必须将其放入容器中,并对这些数据值进行计算。@arkascha这不是一个可怕的建议。我假设5.000.000,00是从某处获取的数据的字符串。OP可能也试图解析它,但失败了。如果不进行分析,将产生语法错误。不幸的是,除了直接使用指定的数字格式之外,解析是唯一的方法。hi@feliscatus,作为您的示例,这就是使用jquery获得值的方式吗?var X=parseFloat$'myNumber'.attr'data-value'.val;谢谢大家的回答,需要一些工作,但felis给出了迄今为止最好的解决方案。再次感谢你;y@azheeq我已经更新了答案,以包括jQuery版本。请点击绿色复选框接受答案,如果它对您有效。我刚刚找到了一个非常实用的解决方案,使用这个项目中的jquery插件:但是您的解决方案仍然是最有用的,所以我将接受答案:如果您决定采用客户端格式化方法,您可以使用使用jquerynumber的代码为自己的问题提供不同的答案。如果其他人遇到同样的问题,分享你的知识真的可以帮助他们很多。
var X = parseInt($("#myNumber").attr("data-value"), 10);