【问题标题】:Round down decimals javascript舍入小数 javascript
【发布时间】:2016-02-11 11:20:36
【问题描述】:

我正在做一个 JS 项目,我遇到了以下问题:

我输入的数字从 0 到 10。(可以是 1、2、3.45,9 等)

预期的输出将是 5 分之几,只有一个降低小数。

示例:

9.7 / 10 将给出 4.85 / 5 ,输出必须为 4.8(只保留一位降低的数字)

4.9 / 10 将给出 2.45 / 5,输出必须为 2.4(只保留一位降低的数字)

感谢您的帮助。

问候

【问题讨论】:

标签: javascript input numbers decimal rounding


【解决方案1】:

您可以通过一个简单的过程来做到这一点:

  1. 将您的数字乘以 10。
  2. 地板它(using Math.floor)。
  3. 除以 10。
Math.floor(4.85 * 10) / 10; // 4.8
Math.floor(2.45 * 10) / 10; // 2.4
Math.floor(3 * 10) / 10;    // 3

以4.85为例:

  1. 4.85 * 10 等同于 48.5
  2. Math.floor(48.5) 等同于 48
  3. 48 / 10 等同于 4.8

【讨论】:

    【解决方案2】:

    试试这个

    var x = 9.7; // input variable
    var base = 10; //base like 10 in your case
    
    var outof = 5; //rounded out of
    
    Number(String((x/base)*outof).match(/^\d+(?:\.\d{0,1})?/)) //outputs one rounded off value for last digit;
    

    最后一行将首先计算的值是

    var value = (x/base)*outof;
    

    然后只得到小数点后的第一个数字

    value = value.match(/^\d+(?:\.\d{0,1})?/);
    

    将最终值转换为数字

    value = Number ( value );
    

    【讨论】:

      【解决方案3】:

      你觉得这很丑吗?

      转换为字符串-->子字符串-->转换为数字

      var x = 9.47;
      var x2 = (x+'').split(".");
      x = parseFloat(x2[0]+"."+x2[1].substr(0,1));
      

      【讨论】:

        【解决方案4】:

        您可以使用.toFixed()

        例如

        var N=2.45;
        
        alert(N.toFixed(1));
        

        将返回2.4

        【讨论】:

        • 不会 ToFixed 导致舍入?
        • toFixed 会导致舍入
        • 是的,它会进行四舍五入
        • 返回2.5你可以试试吗?
        • 他要求的答案没有四舍五入,所以我认为 toFixed 在这里没有用。
        【解决方案5】:
        var x = 4.8555;
        x = Math.floor(x * 100) / 100;
        alert(x.toFixed(1));
        

        【讨论】:

        • 这不起作用,它会四舍五入到高位小数。
        • 这只会提醒 4.8,您也可以运行这个,先生
        • 不,因为4.86会返回4.9,目标是返回4.8
        • 好吧,它不起作用..打开你的控制台并输入 var x = 4.98; x = Math.floor(x * 100) / 100;警报(x.toFixed(1));它将返回 5.0 而不是 4.9
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多