javascript - 如何在 JS 中将大字符串(不是数字)格式化为货币?

标签 javascript

货币的值(value)大于javascript的数字所能容纳的,因此所有的计算都必须对字符串进行。

我遇到的所有代码都以某种方式使用了 parseFloat()parseInt()

例如。以下字符串:
22222222222222222222.222222 的格式为 $22,222,222,222,222,222,222.22

编辑:我不能使用第三方库。它目前仅用于显示,但我们赞赏在 js 中处理大量数字的更通用方法:)

最佳答案

只要您使用的数字是一个字符串,那么这应该可以工作。

var result = numberWithCommas("22222222222222222222.282222");

function numberWithCommas(x) {
    var parts = x.toString().split(".");
    parts[1] = parts[1].substr(0,2);
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
}

JSFiddle:http://jsfiddle.net/markwylde/XNS6T/1/

这是基于对 mikez302 在 this topic 中提供的先前问题的回答

关于javascript - 如何在 JS 中将大字符串(不是数字)格式化为货币?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467606/

相关文章:

javascript - 在将 header 发送到 ServerResponse.setHeader 中的客户端 [dev.start] 后无法设置 header

javascript - "position:fixed"div 上带有 HTML 触摸事件的 IOS 5 (safari) 错误

javascript - 如何比较对象的颜色属性 |三.js

javascript - 在 Vuejs 和 Laravel 中上传文件以及动态输入字段

javascript - D3 散点图突出显示符合特定数据条件的所有点

javascript - Angular 2 : Ajax form data return null

javascript - 在 AngularJS 中嵌入我个人资料中的 Instagram 最近照片

javascript - 从对象中检索数据

javascript - History.replaceState() 在控制台中给出 404 错误

javascript - 由于切换功能,div 被隐藏