首页 > 解决方案 > JavaScript 创建数字的货币格式

问题描述

我有一个基本页面,其中包含用 JS 编写的类似购物车的系统。

我想将显示的数字格式化为货币,如果可能的话,使用 Intl.NumberFormat 使价格根据用户区域设置可读。

对 JS 有非常基础的了解,我做了各种尝试都没有成功,部分代码如下所示:

$('.price').html(set_price.toFixed(2));

我试图将上面的代码修改为:

$('.price').html(Intl.NumberFormat('de-DE').format(parseFloat(set_price.toFixed(2))));

但它不起作用,因为上面代码产生的数字用于页面中的其他计算(例如,如果数量改变它会添加/减去数字,导致计算错误。)

总数显示在前端的 div 中,例如:

<div class="price">0</div>

在添加/减去项目时,它会动态更新数字。

有没有办法格式化显示的数字,而不妨碍其计算能力?

标签: javascript

解决方案


您的问题尚不清楚,但是您是否尝试使用格式化值进行进一步计算?如果是这样 - 那么这绝对是一种代码味道,应该避免。

更好的方法是将实际数字保存在数据模型中(内存中变量的花哨名称),并仅在演示文稿中显示格式化数字(实际呈现的 HTML)。这样你就永远不会“阻碍它的计算能力”。

例如

let myValue = x;
let displayValue = Intl.NumberFormat('de-DE').format(parseFloat(myValue.toFixed(2)))
$('.price').html(displayValue);

推荐阅读