JavaScript;如何设置三位数后的点?
我有以下JavaScript代码:JavaScript;如何设置三位数后的点?,javascript,jquery,numbers,price,Javascript,Jquery,Numbers,Price,我有以下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
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
有人知道这样做的方法吗?你应该使用一个额外的
字符串#替换一个正则表达式(匹配,
)和替换函数(为每个匹配预先添加
)
您的更新代码:
var计算=$('select[name=somevalue1]option:selected')。数据('calc')-($('select[name=somevalue1]option:selected')。数据('calc'))-($('select[name=somevalue1]option:selected')。数据('calc')-($('select[name=somevalue1]option:selected')。数据('calc'))/100*$)('select[name=somevalue2]选项:selected').data('calc'))/100*$('select[name=somevalue3]选项:selected').data('calc'))
函数格式(n){
返回n.toFixed(2).replace('.',',').replace(/\d{3}(?=(\d{3})*),)/g,函数(s){
返回“.”+s
})
}
$(“#计算”)。文本(格式(计算))
演示实现:
var计算=[
1234.56,
1234567.89,
1234,
.12
]
函数格式(n){
返回n.toFixed(2).replace('.',',').replace(/\d{3}(?=(\d{3})*),)/g,函数(s){
返回“.”+s
})
}
console.log(calculations.map(format))
此功能适用于您:
function formatNumber(num) {
var first = num.split(',');
var digits = first[0].split('').reverse();
var new_digits = [];
for(var i =0; i<digits.length; i++) {
if((i+1)%3==0) {
new_digits.push(digits[i]);
new_digits.push('.');
}
else {
new_digits.push(digits[i]);
}
}
var new_num = new_digits.reverse().join("")+','+first[1];
return new_num;
}
函数格式编号(num){
var first=num.split(',');
变量位数=第一个[0]。拆分(“”)。反转();
var新_位数=[];
对于(var i=0;i此代码对我有效:
<p id="calculation"></p>
<script>
function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0]=parts[0].replace(/\B(?=(\d{3})+(?!\d))/g,".");
return parts.join(",");
}
var calculation = 1231739216.34367;
document.getElementById("calculation").innerHTML = numberWithCommas((calculation).toFixed(2))
</script>
带逗号的函数编号(x){
var parts=x.toString().split(“.”);
零件[0]=零件[0]。替换(/\B(?=(\d{3})+(?!\d))/g,“.”;
返回零件。连接(“,”);
}
var计算=1231739216.34367;
document.getElementById(“calculation”).innerHTML=numberWithCommas((calculation).toFixed(2))
该代码将:
在dezimal之后四舍五入到两位数
将小数点改为逗号
小数点前每隔三位数设置一个点
ECMAScript国际化API具有数字格式功能。Intl.NumberFormat()
您可以将其与纯javascript一起使用:
var calculation=document.getElementById('money').value;
//第一路
var moneyFormatter=new Intl.NumberFormat();
document.getElementById('formattedMoney').innerText=moneyFormatter.format(计算);
//第二种方式,使用货币
var moneyFormatter2=新的国际编号格式('en-US'{
风格:“货币”,
货币:美元,
最小分数位数:2
});
document.getElementById('formattedMoney2')。innerText=moneyFormatter2.format(calculation);
计算:
- 数字格式:
- 货币格式:
在现代浏览器(Chrome 24+、Firefox 29+、IE11)上,您可以使用Number.prototype.toLocaleString()
这将使用浏览器的区域设置自动设置数字格式。我的浏览器设置为德语,因此输出为
3.500,12
如果有其他地区的人使用您的网站,他们将看到他们期望的数字。@cartant 1.我不太明白它是如何工作的。2.我不想使用库。添加相应的HTML代码。然后我们可以尝试一下
3.500,12