Javascript 使用计算函数制表器时设置数字格式

Javascript 使用计算函数制表器时设置数字格式,javascript,jquery,numbers,number-formatting,tabulator,Javascript,Jquery,Numbers,Number Formatting,Tabulator,嗨,我正在尝试添加一些数字格式,当在制表器中求和列值时(在页脚中为求和函数设置数字格式) 这就是我目前所尝试的 $(文档).ready(函数(){ 函数formatNumber(num){ var str=num.toString().split('.'); 如果(str[0]。长度>=5){ str[0]=str[0]。替换(/(\d)(?=(\d{3})+$)/g,'$1'); } if(str[1]&&str[1]。长度>=4){ str[1]=str[1]。替换(/(\d{3})/g,

嗨,我正在尝试添加一些数字格式,当在制表器中求和列值时(在页脚中为求和函数设置数字格式)

这就是我目前所尝试的

$(文档).ready(函数(){
函数formatNumber(num){
var str=num.toString().split('.');
如果(str[0]。长度>=5){
str[0]=str[0]。替换(/(\d)(?=(\d{3})+$)/g,'$1');
}
if(str[1]&&str[1]。长度>=4){
str[1]=str[1]。替换(/(\d{3})/g,'$1');
}
返回str.join('.');
}
函数getSum(总计,num){
返回total+num;
}
var adultCalc=函数(值、数据、calcParams){
var totalcount=0;
var计数=0;
data.forEach(函数(数据){
计数=data.price*data.qty;
totalcount+=计数;
});
返回格式编号(totalcount);
}
var表格数据=[{
id:1,
名称:“A项”,
价格:“1000”,
数量:“2000”
},
{
id:3,
名称:“B项”,
价格:“8500”,
数量:“1500”
},
{
id:4,
名称:“C项”,
价格:“9100”,
数量:“2500”
},
{
id:5,
名称:“D项”,
价格:“950”,
数量:“1100”
},
{
id:5,
名称:“E项”,
价格:“2000”,
数量:“750”
},
{
id:4,
名称:“F项”,
价格:“2500”,
数量:“1000”
}
];
var table=新制表器(“示例表”{
身高:205,
数据:tabledata,
布局:“fitColumns”,
栏目:[{
标题:“姓名”,
字段:“名称”,
宽度:150
},
{
标题:“价格”,
字段:“价格”,
bottomCalc:adultCalc
},
{
标题:“数量”,
字段:“数量”,
底部计算器:“总和”
}
]
});
});

花了一段时间才找到一个好的解决方案,而您的formatNumber对我没有帮助;)

我还为所有价格和数量添加了逗号

像这样


$(文档).ready(函数(){
函数formatNumber(num){
返回(“+num”)。替换(/(\d)(?=(\d\d\d)+(?!\d))/g,“$1”);
}
函数getSum(总计,num){
返回total+num;
}
var adultCalc=函数(值、数据、calcParams){
var totalcount=0;
var计数=0;
var i=0;
data.forEach(函数(数据){
计数=data.price*data.qty;
totalcount+=计数;
我++
});
返回格式编号(totalcount);
}
var表格数据=[{
id:1,
名称:“A项”,
价格:“1000”,
数量:“2000”
},
{
id:3,
名称:“B项”,
价格:“8500”,
数量:“1500”
},
{
id:4,
名称:“C项”,
价格:“9100”,
数量:“2500”
},
{
id:5,
名称:“D项”,
价格:“950”,
数量:“1100”
},
{
id:5,
名称:“E项”,
价格:“2000”,
数量:“750”
},
{
id:4,
名称:“F项”,
价格:“2500”,
数量:“1000”
}
];
var table=新制表器(“示例表”{
身高:205,
数据:tabledata,
布局:“fitColumns”,
栏目:[{
标题:“姓名”,
字段:“名称”,
宽度:150
},
{
标题:“价格”,
字段:“价格”,
格式化程序:“金钱”,
formatterParams:{
十进制:“.”,
千:“,”,
符号:“$”,
符号在“p”之后,
精度:错误,
},
bottomCalc:adultCalc
},
{
标题:“数量”,
字段:“数量”,
格式化程序:“金钱”,
formatterParams:{
千:“,”,
精度:错误
},
bottomCalc:函数(值、数据、calcParams){
if(值和值.length){
var total=值。减少((总和,x)=>+总和++x);
返回格式编号(总数)
}
},/“总和”,
}
]
});
});

您遇到的问题是,您正在将数据中的数值存储为字符串,如果将它们从引号中去掉,则数学运算将正常进行:

{
    id: 5,
    name: "Item E",
    price: "2000",
    qty: "750"
},
应该是

{
    id: 5,
    name: "Item E",
    price: 2000,
    qty: 750
},

实际发生的是数量仍然像通常的数字(8850)一样,我的期望是(8850)。用逗号分开,就像我的价格一样,先生@mplungjan
tablator.info/docs/4.1/format#format builtin
它用于行格式化程序sir,而不是总和格式。我要找的是sum格式@mplungjan
{
    id: 5,
    name: "Item E",
    price: 2000,
    qty: 750
},