Kendo网格格式编号,空格为千位分隔符和两位小数

时间:2018-04-26 12:22:36

标签: asp.net-mvc kendo-grid kendo-asp.net-mvc

我需要格式化列中的数字,其中空格为千位分隔符,并带有两个小数位。例如:125895456.8942 - > 125 895 456.89

 columns: [
      {
            field: "sumStartDebit",
            title: "Debit",
            width: "130px",
            template: function (dataItem) {
                if (dataItem.sumStartDebit == 0) { return "" }
                else if (dataItem.sumStartDebit < 0) { return "<span style='color:red'>" + dataItem.sumStartDebit + "</span>" }
                else { return "<span>" + dataItem.sumStartDebit + "</span>" }
                    },
            locked: true,
             },
          ]

我可以用文化来实现这一目标吗?我有一个适用于千位分隔符的函数,但不适用于我的两位小数的条件

function numberWithSpaces(x) {
            return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
        }

1 个答案:

答案 0 :(得分:2)

这个怎么样:

function numberWithSpaces(x) {
        return kendo.toString(x, "##,#.##").replace(/,/g, " ")
}

使用文化中常用的十进制分隔符格式化字符串(在本例中为“ - ”表示en-US),然后使用正则表达式将其替换为空格。 对于“12345678.0394”,您将获得“12 345 678.04”

您也可以在模板中内嵌此内容:

template: '#= kendo.toString(sumStartDebit, "##,#.##").replace(/,/g, " ")#'