javascript - 我的加千逗号功能不起作用
问题描述
我有一个函数可以将一个值转换为一个带有千位逗号的值,并且它适用于我的其他 html 表单之一,但不是这个。谁能看到我的代码有问题?
---javascript---
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function calcule2(){
var i=0; for (i=0;i<= 29;i++) {calcule();}}
function calcule(){
var C20 = Excel2Html.C20.value=+parseFloat(Excel2Html.C19.value)*parseFloat(Excel2Html.E16.value)*4;
var C21 = Excel2Html.C21.value=+parseFloat(Excel2Html.C20.value)*0.22;
Excel2Html.C20.value=(numberWithCommas(C20));
Excel2Html.C21.value=(numberWithCommas(C21));
---html---
<input type="text" onchange="calcule2()" name="E16" value="100" size="5" style="background: #67823A; border: none; color: #ffffff;">
<input type="text" onchange="calcule2()" name="C20" value="196000" size="5" disabled="disabled">
<input type="text" onchange="calcule2()" name="C21" value="43120" size="5" disabled="disabled">
C20 返回 - 196000 C21 返回 - 43120
但是,它应该是:
C20 = 196,000 C21 = 43,120
解决方案
已经有一些方法可以按照您正在寻找的方式格式化数字。
您可以使用toLocaleString()
function numberWithCommas(value) {
return Number(value).toLocaleString("en");
}
document.querySelector("#number").addEventListener("input", function() {
console.log(numberWithCommas(this.value));
});
<input type="number" id="number" />
推荐阅读
- android - 我无法使用 Mockito 测试 SharedPreference
- java - gradle 测试任务在扩展 TestCase 但没有测试方法的 Test Util 类上失败
- grails - 无法在空对象上获取属性“id”
- python - 使用几何方法在屏幕上设置 Tkinter 标签位置
- vbscript - 如何通过 VBScript 在文本文件中保存非拉丁字符?
- excel - 试图忽略 Excel 列中的零值
- python - 使用坐标(基因)文件的脚本
- android - Android 语音转文本查询
- java - JavaFx 如何使用二维数组向 GridPane 添加按钮?
- angular - '可观察的
>' 不可分配给类型 'Observable