【问题标题】:Display decimal 2 places if float, and display decimal 0 places if int [duplicate]如果是浮点数则显示小数点 2 位,如果是整数则显示小数点数 0 位 [重复]
【发布时间】:2016-02-09 02:19:12
【问题描述】:

我知道如何计算小数点后 2 位。

使用toFixed(2);,但问题是列表中的所有数字始终为小数点后 2 位。

我想如果分数使用小数 2 位,如果非分数使用小数 0 位。

number     display
------     -------
1          1
3          3
1.341      1.34
1.345555   1.35
2          2

【问题讨论】:

  • 检查数字是整数还是浮点数,如果是浮点数应用toFixed(2)

标签: javascript decimal


【解决方案1】:

function show(num) { // test for int is from duplicate question
  return (num % 1 === 0)?num:num.toFixed(2);
}

var nums = [1,3,1.341,1.345555,2],div=document.getElementById("res");
for (var i=0;i<nums.length;i++) {
  res.innerHTML+='<br/>'+show(nums[i]);
}
&lt;div id="res"&gt;&lt;/div&gt;

【讨论】:

    【解决方案2】:

    试试这个

    function isInt(n) {
           return n % 1 === 0;
    
        }
        var num=3.00;
        if (isInt(num)){alert(num);}
        else{alert(num.toFixed(2));}
    

    【讨论】:

    • 我认为这是三元运算符的完美用例:alert(isInt(num) ? num : num.toFixed(2))
    • 你是对的,但我喜欢括号,仍然有 python 语法的噩梦..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2012-08-16
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    相关资源
    最近更新 更多