Javascriptparsingfloat忽略逗号后的小数
这是一个简单的场景。 我想显示在我的网站上显示的两个值的减法:
//Value on my websites HTML is: "75,00" var fullcost = parseFloat($("#fullcost").text()); //Value on my websites HTML is: "0,03" var auctioncost = parseFloat($("#auctioncost").text()); alert(fullcost); //Outputs: 75 alert(auctioncost); //Ouputs: 0 谁能告诉我我做错了什么?
 这是“按devise”。  parseFloat函数将只考虑string的部分,直到达到非+, – ,数字,指数或小数点。 一旦它看到逗号停止看,只考虑“75”部分。 
要解决这个问题,请将逗号转换为小数点。
 var fullcost = parseFloat($("#fullcost").text().replace(',', '.')); 
  JavaScript的parseFloat不需要一个区域设置参数。 所以你将不得不用replace. 
 parseFloat('0,04'.replace(/,/, '.')); // 0.04 
  parseFloat根据十进制文字的JavaScript 定义parsing,而不是您的语言环境的定义。  (例如, parseFloat不是语言环境感知的。)JavaScript中的十进制文字使用. 为小数点。 
为什么不使用全球化? 这只是您不使用英语时可以运行的一个问题:
 Globalize.parseFloat('0,04'); // 0.04 
一些链接在stackoverflow看:
- Jquery全球化
- JQuery全球化是行不通的
 正如@JaredPar在他的回答中指出的,用parseFloatreplace 
 var fullcost = parseFloat($("#fullcost").text().replace(',', '.')); 
 只要用一个dotreplacecomma就可以修复, 除非这个数字超过千分之一,如1.000.000,00这样会给你错误的数字。 所以你需要用comma代替dots删除。 
 // Remove all dot's. Replace the comma. var fullcost = parseFloat($("#fullcost").text().replace(/\./g,'').replace(',', '.')); 
通过使用两次replace,您将能够处理数据,而不会在输出中收到错误的数字。
  JS中的数字使用a .  (句号/句点)字符,表示小数点不是a , (逗号)。