向下舍入小数javascript

时间:2016-02-11 11:20:36

标签: javascript input numbers decimal rounding

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

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

预期的输出将是5分之一,只有一个降低十进制。

示例:

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

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

感谢您的帮助。

此致

5 个答案:

答案 0 :(得分:2)

您可以通过一个简单的过程来完成此任务:

  1. 将您的号码乘以10。
  2. 楼层它(using Math.floor)。
  3. 除以10。
  4. 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

答案 1 :(得分:0)

试试这个

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 );

答案 2 :(得分:0)

var x = 4.8555;
x = Math.floor(x * 100) / 100;
alert(x.toFixed(1));

答案 3 :(得分:0)

这对你来说难过吗?

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

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

答案 4 :(得分:-1)

您可以使用.toFixed()

例如

var N=2.45;

alert(N.toFixed(1));

将返回2.4