javascript - 用逗号和点对货币求和

标签 javascript jquery datatables

如果小数点分隔符是逗号,我的代码可以正常工作,但用户可以在点和逗号之间进行选择。

我面临的问题是显示格式正确的总数(有两位小数;由小数点分隔符格式化;也有千位分隔符)

$('#mytable').dataTable(
{
    'footerCallback': function ( row, data, start, end, display )
    {
        var api = this.api();

        // Remove the formatting to get integer data for summation
        var intVal = function ( i ) {
            return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0;
        };

        var total  = api.column(3).data()
                                  .reduce( function (a, b) 
                                  {
                                    return intVal(a) + intVal(b);
                                  }, 0);

        $('#total').text(parseFloat(total).toFixed(2).replace(/(\d)(?=(\d{3})+\,)/g, '$1,'));
    }
});

可以直接在JSFiddle中查看问题.

enter image description here

最佳答案

取任何格式的数字(假设它总是有 2 个十进制数),删除所有非数字符号,将其除以 100,得到纯整数:

function test() {
  var a = parseInt($('#a').val().replace(/[^0-9]/g, '')) / 100;
  var b = parseInt($('#b').val().replace(/[^0-9]/g, '')) / 100;
  $("#result").text(a + b);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="a" placeholder="1, 455.00" />+
<input type="text" id="b" placeholder="1 Thousand 1 hundred 50 and 50 cents" />=
<span id="result">???</span>
<hr/>
<button onClick="test()">Calculate</button>

关于javascript - 用逗号和点对货币求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051854/

相关文章:

jquery - 创建一个 jQuery 图像 slider

javascript - Jquery - 条件不起作用

jquery - jQuery Tablesorter 的日期排序问题

javascript - 数据表:未捕获类型错误:使用按钮插件时无法读取未定义的属性 'copy'

angular - "No data available in table"甚至在数据表加载后显示

javascript - 我怎样才能让 redux 派发一个 Action 并返回一个 promise ?

javascript - ReactJS 中逻辑 OR 运算符期望为 bool 值的表达式

javascript - 突出显示 onclick 菜单链接

jquery - 使用数据表加载消息

javascript - 如何将数组值拆分为新行 - jquery