jQuery 数据表抑制科学记数法

我正在使用数据表来呈现表格并显示来自我的 api 的数据。

<script type="text/javascript">
$.fn.dataTable.ext.errMode = 'throw';
$(document).ready(function (){
    var table = $('#example').DataTable({

        'ajax': {
            'url': '/api/books','dataSrc': '',},"language": {
        "emptyTable": "Nothing to show","columns": [
            { "data": "price",render: $.fn.dataTable.render.number(',','.',8,''),"width":"40%"  },{ "data": "amount",'') },{ "data": "sum",],"scrollY":        "300px","scrollCollapse": true,"autoWidth": false,"lengthChange": false,"ordering": false,"pageLengt"': 50,"bFilter": false,"bpaginate": false,"bInfo": false,"bSort": false,"createdRow": function( row,data,dataIndex){
        
                [...more code here...]
});

</script>

此代码运行良好,但任何

sakura52 回答:jQuery 数据表抑制科学记数法

您可以在 DataTables 列渲染器中使用 JavaScript Intl.NumberFormat 对象:

Intl.NumberFormat('en',{ maximumSignificantDigits: 15 }).format(1234.00000000123);

这是一个演示:

var dataSet = [
    {
      "name": "Tiger Nixon","amount": 1234.00000000123
    }
  ];

$(document).ready(function() {

var table = $('#example').DataTable( {
  data: dataSet,columns: [
    { 
      title: "Name",data: "name" 
    },{
      title: "Amount",data: "amount",render: function ( data,type,row,meta ) {
        if (type === 'display') {
          return Intl.NumberFormat('en',{ maximumSignificantDigits: 15 }).format(data);
        } else {
          return data;
        }
      }
    }
  ]

} );

} );
<!doctype html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Demo</title>
  <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
  <script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.js"></script>
  <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.css">
  <link rel="stylesheet" type="text/css" href="https://datatables.net/media/css/site-examples.css">

</head>

<body>

<div style="margin: 20px;">

    <table id="example" class="display dataTable cell-border" style="width:100%">
    </table>

</div>

</body>
</html>

问题中使用的插件使用 JavaScript parseFloat() 函数,如您所见,如果值足够小,该函数会将值转换为科学记数法 - 就像您给出的示例一样:

parseFloat(0.00000099) -> 9.9e-7
本文链接:https://www.f2er.com/51916.html

大家都在问