JqGrid 框架自带sum合计浮点数精度问题处理

    xiaoxiao2021-03-25  105

    问题: 通过JqGrid的$("#table_id").getCol('colModel的name', false, 'sum');获取时会出现浮点数精度问题! 解决方案: 1.自定义Math.add方法实现精确加法 Math.add = function(v1, v2) { var r1, r2, m; try { r1 = v1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try { r2 = v2.toString().split(".")[1].length; } catch (e) { r2 = 0; } m = Math.pow(10, Math.max(r1, r2)); return (v1 * m + v2 * m) / m; } =======================================上面是单独的方法,下面是一体的================================================= 2.在jqGrid初始化方法中加入代码,格式如下: $("#table_id").jqGrid({ gridComplete: function () { //将第3步到第5步复制到此方法中; } }); 3.获取jqGrid的所有表数据 var jq_tables = $("#table_id").jqGrid("getRowData"); 4.遍历jq_tables表格中的每一行数据,并获取每一个字段的值; var num = 0; for(var i=0;i<jq_tables.length;i++){ //jq_tables[i].字段名 获取每一行的指定字段的值 num = Math.add(num,parseFloat(jq_tables[i].字段名)==null?0:jq_tables[i].字段名); } 5.添加到jqGrid表格的底部 $(this).footerData("set",{"cloModel字段名":"合计","cloModel字段名":num}); 致此,就解决了JqGrild底部合计浮点数问题!
    转载请注明原文地址: https://ju.6miu.com/read-23542.html

    最新回复(0)