当我编写一段处理一些浮点值的JavaScript代码时,一个想法让我感到震惊.JavaScript中的小数点符号是什么?它总是.吗?还是文化特有的?并且怎么样.toFixed()和.parseFloat()?如果我正在处理用户输入,则可能包含本地特定于文化的小数点分隔符号.
最终,我想编写支持用户输入中的两个小数点的代码 - 特定于文化.,但如果我不知道JavaScript期望什么,我就不能编写这样的代码.
补充:好的,Rubens Farias 建议查看类似的问题,其中有一个很好的接受答案:
function whatDecimalSeparator() {
var n = 1.1;
n = n.toLocaleString().substring(1, 2);
return n;
}
Run Code Online (Sandbox Code Playgroud)
这很好,它让我得到locale小数点.毫无疑问,迈向解决方案的一步.
现在,剩下的部分将是确定行为.parseFloat()是什么.几个答案指出,对于浮点文字只有.有效.是否.parseFloat()采取同样的方式?或者它可能在某些浏览器中需要本地小数点分隔符?是否有任何不同的方法来解析浮点数?我应该推出我自己的即将到来的吗?
如何转换此字符串以获取1000000?问题是我总是得到10000:
console.log(parseFloat('10.000.000,00'.replace('.', ',').replace(/,(?=[^,]*$)/, '.')),'test');Run Code Online (Sandbox Code Playgroud)
有什么建议么?