我已经尝试了以下方法:

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

输出是2而不是2,83

任何想法?

最佳答案

parseFloat("2,83")将返回2,因为,不被识别为十进制分隔符,而.则被识别为十进制分隔符。

如果要将数字四舍五入到小数点后两位,请使用parseFloat(discval.toFixed(2))Math.round(discval * 100) / 100;
如果出于显示目的需要此突出物,则将其保留为带逗号的字符串。您也可以使用Number.toLocaleString()设置数字格式以用于显示。但是您将无法在进一步的计算中使用它。

BTW .toFixed()返回一个字符串,因此此后无需使用.toString()

10-06 00:13