如何在jquery中显示两位小数

时间:2015-01-28 06:40:55

标签: jquery

我在jQuery row.append

中做了学生分数的平均分
 row.append($('<TD></TD>').text(((item.Marks1 + item.Marks2 + item.Marks3) / 300) * 100));

我这样使用它不起作用

 row.append($('<TD></TD>').text((Math.floor(item.Marks1 + item.Marks2 + item.Marks3) / 300) * 100));

这是平均如何接受两位小数这种格式请帮帮我。

3 个答案:

答案 0 :(得分:0)

使用toFixed(2)

 ((item.Marks1 + item.Marks2 + item.Marks3) / 300) * 100).toFixed(2);

DOCS

  

toFixed()方法将数字转换为字符串,保持指定的小数位数。

答案 1 :(得分:0)

将解决问题的2个步骤:

  1. space不是Javascript对象中键的有效字符(假设您的对象中有Marks 1之类的键)。
    因此,您需要将item.Marks 1替换为item.Marks1

  2. 接下来,将所有标记值转换为浮点值:

    parseFloat(item.Marks1)

    因此,您的代码应如下所示:

  3. row.append($('<TD></TD>').text((Math.floor(parseFloat(item.Marks1) + parseFloat(item.Marks2) + parseFloat(item.Marks3)) / 300) * 100));

    编辑:根据他人的建议,您可以在上面代码行的末尾应用.toFixed(2),以获得小数点后的2位数。

    EDIT2:添加了代码段:

    &#13;
    &#13;
    var item = {
      Marks1: 100.10,
      Marks2: 100.105,
      Marks3: 100.201
    }
    
    
    var row = $('table');
    
    var num = parseFloat(item.Marks1) + parseFloat(item.Marks2) + parseFloat(item.Marks3);
    
    num = num / 300 * 100;
    
    num = num.toFixed(2);
    
    row.append($('<TD></TD>').text(num));
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table></table>
    &#13;
    &#13;
    &#13;

答案 2 :(得分:0)

从对象item中删除多余的空格。要访问任何属性,您需要使用带有属性的对象名称而不使用任何空格。 例如,item.Marks1

使用toFixed()将任意值四舍五入到小数点后两位:

在你的情况下:

row.append($('<TD></TD>').text((((item.Marks1 + item.Marks2 + item.Marks3) / 300) * 100).toFixed(2));