javascript - 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>
在添加/减去项目时,它会动态更新数字。
有没有办法格式化显示的数字,而不妨碍其计算能力?
解决方案
您的问题尚不清楚,但是您是否尝试使用格式化值进行进一步计算?如果是这样 - 那么这绝对是一种代码味道,应该避免。
更好的方法是将实际数字保存在数据模型中(内存中变量的花哨名称),并仅在演示文稿中显示格式化数字(实际呈现的 HTML)。这样你就永远不会“阻碍它的计算能力”。
例如
let myValue = x;
let displayValue = Intl.NumberFormat('de-DE').format(parseFloat(myValue.toFixed(2)))
$('.price').html(displayValue);
推荐阅读
- reactjs - 如何在下面的数据中添加搜索功能(理想情况下在另一个组件中)
- python - 如何通过 Python 中的原始字符串索引将 HTML 标记插入字符串?
- python - 如何使用 selenium 和 Python 从浏览器控制台获取错误和警告?
- c# - 使用属性验证数字中的位数
- tvos - Top Shelf 的 Info.plist 中的 CFBundleDisplayName
- javascript - 蜱的正确定义是什么?
- r - kableExtra::collapse 行干扰 kable(caption = "")
- json - pytest - 访问烧瓶响应参数
- python - Django REST:ViewSet 自定义字典
- bash - 如何在没有前导换行符的情况下在文本文件末尾附加字符串?