我的用户输入包含带小数的数字。我必须将该输入修改为可用于进行计算的格式。
所以,请考虑以下事项:
input --> should become
10,123.15 --> 10.123,15
10.123,15 --> 10.123,15
10,123.1 --> 10.123,10
10.123,1 --> 10.123,10
10,123 --> 10,123,00
10.123 --> 10.123,00
10.123,13562 --> 10.123,14
10,123.13562 --> 10.123,14
换句话说:使用千位分隔符的点,小数分隔符的逗号,总是返回一个四舍五入的二进制数。
我尝试使用正则表达式,副词,圆形,但我有点卡住了。我现在正在为前面提到的前两个例子工作,但现在它不适用于其余的。
现在看了几个小时,但也许你可以帮我吧? JQuery Number Formatting确实对我有所帮助,但仍然没有为上述所有示例工作。
如果有人可以帮助我,我会很高兴的!
答案 0 :(得分:1)
如果您提供以您需要的方式格式化数字的区域设置,则可以使用toLocaleString()
来实现此目的;例如de-DE
。试试这个:
var foo = '10,123.15'; // number as string
var num = parseFloat(foo.replace(',', '')); // remove the , and convert to float
console.log(num.toLocaleString('de-DE')); // format to locale

答案 1 :(得分:0)
回答!
我尝试了它们,因为它我有更多的想法。我通过从右到左迭代输入val来解决它,同时测试char是逗号还是点。然后采取相应行动现在工作正常!
再次感谢,
此致