在DataTables中仅显示小数点后的3位数

时间:2018-01-01 17:33:12

标签: javascript jquery html datatables

我试图在小数点后只显示3位数,但我无法这样做。我尝试使用toFixed()方法,但我无法成功。

这是我的fiddle

我的HTML代码

<table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>DATE</th>
            <th>CODE</th>
            <th>PRODUCT</th>
            <th>QUANTITY</th>
            <th>UNIT</th>
            <th>VALUE</th>
            <th>COUNTRY</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>01/01/2017</td>
            <td>84571001</td>
            <td>  MACHININGCENTRESHORIZONTAL</td>
            <td>13</td>
            <td>  NOS</td>
            <td >22.1382568</td>
            <td>JAPAN</td>
        </tr>
        <tr>
            <td>03/01/2017</td>
            <td>84571001</td>
            <td>  MACHININGCENTRESHORIZONTAL</td>
            <td>33</td>
            <td>  NOS</td>
            <td>54.5104524</td>
            <td>JAPAN</td>
        </tr>
    </tbody>
</table>

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

最简单的方法是使用内置的number helper

columnDefs: [{
  targets: [5],
  render: $.fn.dataTable.render.number(',', '.', 3)
}]

更新小提琴 - &gt; http://jsfiddle.net/ebRXw/3627/ 只是一个示例,请点击此链接,详细了解您可以使用的所有选项以及数字渲染器。

答案 1 :(得分:3)

您可以在应用DataTable之前转换单元格的值。

假设需要修改的单元格具有hi类,您可以这样做。

$(document).ready(function() {

    $('#example .hi').each(function() {
        var num = $(this).html(); // get the content of the cell
        num = parseFloat(num); // transform it to a JavaScript number
        num = num.toFixed(3); // Limit the number of decimals to 3
        $(this).html(num); // Update the HTML content
    });

    $('#example').DataTable({
        responsive: true
    });

});

答案 2 :(得分:3)

您可以为一列或多列定义自定义渲染器。

https://datatables.net/examples/advanced_init/column_render.html

$('#example').DataTable({
  responsive: true,

  columnDefs: [{
    targets: [5],
    render(v){
      return Number(v).toFixed(3) 
    }
  }]
});