如何在Javascript中将浮点数小数分隔符从点转换为逗号

5

我已经尝试了以下方法:

discval = 2.833423
discval = discval.toFixed(2).toString().replace("." , ",");
discval = parseFloat(discval);

输出结果为2而不是2.83。
有任何想法?
2个回答

7

parseFloat("2,83")将返回2,因为逗号,不被识别为小数分隔符,而点.则是。

如果你想将数字四舍五入到小数点后两位,只需使用parseFloat(discval.toFixed(2))Math.round(discval * 100) / 100;

如果你只是为了显示目的而需要这个值,那么保留它作为一个带有逗号的字符串。你也可以使用Number.toLocaleString()来格式化数字以供显示。但你不能在进一步的计算中使用它。

顺便说一句,.toFixed()返回一个字符串,所以不需要在其后面使用.toString()


是的,你真的需要知道为什么要用逗号替换点。除了显示目的之外,任何其他目的都可能是错误的方法。 - jumps4fun

3

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

parseFloat解析其参数(一个字符串),并返回一个浮点数。如果它遇到除 +、-、数字(0-9)、小数点或指数以外的字符,则返回到该点的值,并忽略该字符和所有后续字符。允许前导和尾随空格。

如果第一个字符不能转换为数字,则parseFloat返回NaN。

,不是预期的字符,因此该数字被截断为逗号。

在JavaScript中无法更改浮点数的表示方式,如果您想用逗号而不是点分隔小数,则需要将您的数字视为字符串处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接