我有以下JavaScript代码:
var calculation = $('select[name=somevalue1] option:selected').data('calc')-($('select[name=somevalue1] option:selected').data('calc')/100*$('select[name=somevalue2] option:selected').data('calc'))-($('select[name=somevalue1] option:selected').data('calc')-($('select[name=somevalue1] option:selected').data('calc')/100*$('select[name=somevalue2] option:selected').data('calc')))/100*$('select[name=somevalue3] option:selected').data('calc');
$('#calculation').text((calculation).toFixed(2).replace(".",","))
字符串
这将计算一个数字,将.
改为,
,并将其四舍五入到逗号后的两位数。
我需要做的是在树的数字后面加一个点。
平均值:1.234,56
而不是1234,56
1.234.567,89
而不是1234567,89
有人知道怎么做吗?
6条答案
按热度按时间a7qyws3x1#
ECMAScript国际化API具有数字格式化功能。
Intl.NumberFormat()
你可以这样使用纯JavaScript:
个字符
IE11、Firefox和Chrome都支持,但我不确定其他浏览器是否支持。
http://www.ecma-international.org/ecma-402/1.0/#sec-11.1.2
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
zfycwa2u2#
您应该使用一个附加的
String#replace
,并带有一个正则表达式(匹配,
之前的三个数字)和一个替换函数(在每个匹配之前添加.
)。您的更新代码:
字符串
Demo实现:
型
qltillow3#
在现代浏览器(Chrome 24+,Firefox 29+,IE 11)上,您可以使用Number.prototype.toLocaleString()
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
字符串
这将使用浏览器的区域设置自动格式化数字。我的浏览器设置为德语,因此输出为
型
如果有不同地区的人使用你的网站,他们会看到他们所期望的数字。
mzsu5hc04#
此功能将为您工作:
字符串
xam8gpfp5#
我从谷歌来到这里只是为了3位数格式的一部分,所以这里的香草代码只是:
格式为3位-基本功能
个字符
格式化为3位-高级功能
型
这是相同的代码,但所有的铃铛和哨子,选项,边缘情况覆盖,略有优化,并考虑到十进制数字。
dkqlctbz6#
这段代码为我工作:
字符串
此代码将:
1.四舍五入(用于商业)到两位数后的数字。
1.将小数点改为逗号。
1.在小数点前每隔三位设置一个点。