我正在研究一个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 (只保留一个降低的数字)感谢您的帮助。
此致
答案 0 :(得分:2)
您可以通过一个简单的过程来完成此任务:
Math.floor
)。Math.floor(4.85 * 10) / 10; // 4.8
Math.floor(2.45 * 10) / 10; // 2.4
Math.floor(3 * 10) / 10; // 3
以4.85为例:
4.85 * 10
等同于48.5
。Math.floor(48.5)
等同于48
。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