我有一个用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>当项目被添加/减去时,它会动态地更新数字。
有没有一种方法可以格式化显示的数字,而不影响它的计算能力?
发布于 2021-04-04 16:34:49
您的问题不清楚,但您是否正在尝试使用格式化后的值进行进一步计算?如果是这样-那么这肯定是一个code smell,应该避免。
一种更好的方法是将实际数字保存在数据模型中(内存中变量的别致名称),并且只在表示中显示格式化的数字(实际呈现的HTML)。这样你就永远不会“阻碍它的计算能力”。
例如:
let myValue = x;
let displayValue = Intl.NumberFormat('de-DE').format(parseFloat(myValue.toFixed(2)))
$('.price').html(displayValue);https://stackoverflow.com/questions/66939307
复制相似问题