Vue前端,数值转换为千分位格式,并保留两位小数

未来的农场主 2024-07-04 17:33:03 阅读 53

1.前端使用elg-pro-table 数据表格:

<code><elg-pro-table

class="custom-card"code>

ref="table"code>

:datasource="url"code>

:columns="columns"code>

:where="where"code>

:border="true"code>

:toolkit="[]"code>

toolbar

:loading="loading"code>

>

</elg-pro-table>

2.其中使用是columns表格:

// 表格列配置

columns: [

{

prop: 'voucherNo',

label: '凭证号',

showOverflowTooltip: true,

minWidth: 100 ,

className: 'textType'

},

{

prop: 'originalCurrencyDebit',

label: '借方金额',

showOverflowTooltip: true,

minWidth: 120,

className: 'moneyType',

formatter: (value) => {//使用formatter,其中value是整个columns中的一行数据

//value.originalCurrencyDebit和上面的prop的内容一致

return commonApi.changeMoney(value.originalCurrencyDebit);

}

},

],

3.其中commonApi.changeMoney()方法是引用的一个api方法:

//数值转换

changeMoney(value){

if(value === ""){//当value为空时,前台显示-

return '-'

}else{

//当value等于0或者是字符串0时,显示-

if ("0.00"===value || "0"===value || value ===0 || value ===0.00) {

return '-'

}else{

//判断一个变量value是否小于0。如果value小于0,那么isNegative的值就是true,否则就是false。

let isNegative = value < 0;

//下面一行代码是将一个数值value转换为千分位格式的字符串,并保留两位小数。具体步骤如下:

//1.使用Math.abs(value)函数获取value的绝对值,确保结果为正数。

//2.使用parseFloat()函数将绝对值转换为浮点数类型。

//3.使用toFixed(2)方法将浮点数保留两位小数。

//4.使用正则表达式/\d(?=(\d{3})+\.)/g匹配小数点前的每三位数字,并在其前面添加逗号分隔符。

//5.最终得到的结果存储在变量result中。

let result = parseFloat(Math.abs(value)).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');

if (isNegative) {//当isNegative是false时,下面的数据加上-,

result = '-' + result;

}

return result

}

}

},

至此结束。

style小贴士:

<style>

/* 默认居中 */

.custom-card .el-table__body td {

text-align: center;

}

/* 金额类居右 */

.custom-card .el-table__body td.moneyType {

text-align: right;

}

/* 文本类居左 */

.custom-card .el-table__body td.textType {

text-align: left;

}

</style>



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。