javascript 将 数字 按照固定格式转化成 字符串 例如: 将1111111转化成1,111,111.00

JavaScript09

javascript 将 数字 按照固定格式转化成 字符串 例如: 将1111111转化成1,111,111.00,第1张

代码作者:zhaoapk,非常棒的思路

function formatNumber(a) {

a = a.toFixed(2).split('.')// 保留小数点两位并拆分

a[0] = a[0].split('').reverse().join('') // 翻转字符

.replace(/(\d{3})/g, '$1,') // 加逗号

.split('').reverse().join('') // 再反转

.replace(/^,/, '')// 去掉最前面的逗号

return a.join('.')

}

alert(formatNumber(123456.1))

首先,需要将科学计数法转换成一下:例如:BigDecimal bd = newBigDecimal("3.40256010353E11")然后转换成字符串:String str = bd.toPlainString()如果这个数字的长度是在int的范围内的话,是可以转换成int类型:int a = Integer.parsInt(str)如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了。数字在以浮点数储存到内存中后超出精度外的数据都丢失了呀,还能有方法找回?单精度4字节32位双精度8字节64位他们所能表达的十进制有效数字就是7位或者15位,不可能再多,否则就不是浮点数了。

js有专门的将字符串转换成数字的函数:parseInt()和parseFloat()

你也可以用正则表达式将字符串里的“数字”提出来,然后用Number()函数对其强制转换,否则用Number()会返回NaN。