一段数字格式化金钱形式的处理(即,前面有金钱符号,数字每三位加一个逗号,后面补两个零)。代码如下
function priceFormat(value) {
let options = {
style: "currency",
currency: "CNY",
};
if (value && Number(value)) {
return (Number(value)).toLocaleString("zh-CN", options);
} else {
return (0).toLocaleString("zh-CN", options);
}
}
之后,在开发者工具上,效果如下,可以看到,金额已经格式化为金钱的形式
接下来这张图是IOS的真机,手机型号为IOS13。效果如下,可以看到,金额已经格式化为金钱的形式
接下来的是我手机的真机预览图。效果如下,可以看到,只是单纯的显示了数字,并没有格式化为金钱的形式。
测试设备为华为Mate40,操作系统为HarmonyOS 2.0,考虑到华为和其他安卓机的差异性,之后拿小米手机做过一次测试,发生了同样的问题,可以暂时得到判断,在Android系统下,使用 toLocalString 这种方法去格式化金钱,是无效的,希望官方可以做出解答
目前遇到的问题是:skyline模式下不生效。真是恶心,自己写一个方法吧
var p = n.replace(r, "$1,")
wxs文件里可以试试这样的,n为数字,类型是string, p是格式化后的字符串
我也遇到了同样的问题,真机 IOS 没有问题,Android 不支持
amount(V, isFixed = 2) { if (!V) { return new Number(V || 0).toFixed(isFixed) } return V.toLocaleString('en-US', { minimumFractionDigits: isFixed, maximumFractionDigits: isFixed }) };