0

在 Visual FoxPro 中,数字可以在文本框或网格中进行格式化,并且程序仍将其视为数字,即使它以逗号和句点格式显示。

目前我将数据插入到 DataTable Jquery 中,如下所示:

oTable.fnAddData( ["Bogus data","1,541,512.52","12.5%","0","0","0"]);

但我想按如下方式输入数据,但为了清楚起见,用逗号显示:

oTable.fnAddData( ["Bogus data",1541512.52,"12.5%","0","0","0"]);

原因是当你对这一列的行进行排序时,第一个例子中的字符串会产生混乱。这些数字,希望能产生一个有序的列表。

如果您对如何修复字符数列的排序有任何其他建议,请提出...

TIA

丹尼斯

4

2 回答 2

1

DataTables 的作者在此处详细介绍了格式化数字的排序插件:

http://www.datatables.net/plug-ins/sorting

请参阅“格式化数字”:

该插件将为具有额外格式的数字列提供数字排序,例如千位分隔符、货币符号或任何其他非数字数据。

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "formatted-num-pre": function ( a ) {
        a = (a==="-") ? 0 : a.replace( /[^\d\-\.]/g, "" );
        return parseFloat( a );
    },

    "formatted-num-asc": function ( a, b ) {
        return a - b;
    },

    "formatted-num-desc": function ( a, b ) {
        return b - a;
    }
} );
于 2013-03-06T04:53:10.733 回答
1

这是一种快速而肮脏的方法;

var number = 1541512.52;
var nicelyformattedNumber = number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
oTable.fnAddData( ["Bogus data", nicelyformattedNumber, "12.5%","0","0","0"]);

来源

于 2013-03-06T04:55:35.407 回答