尝试编辑提供两位小数的现有(工作,显示的第一个)脚本,以便它只提供舍入的数字 - 我的编辑显示第二个(例如here)。要清楚我想要简单的整数,即18不是18.00。
function D(r){
if (r.stat === "ok") {
for (var k in r.items) {
document.write(r.items[k].inventory)
}
}
}
function D(r){
if (r.stat === "ok") {
for (var k in r.items) {
document.write(r.items[k].inventory)
Math.round()
}
}
}
答案 0 :(得分:3)
您可以尝试使用以下方法之一根据您的要求执行此操作:
<强> Math.floor()强>
intvalue = Math.floor( floatvalue );
<强> Math.ceil()强>
intvalue = Math.ceil( floatvalue );
<强> Math.round()强>
intvalue = Math.round( floatvalue );
示例:
value = 3.65
Math.ceil(value); // 4
Math.floor(value); // 3
Math.round(value); // 4
在您的函数中:
您应该将参数传递给方法math.round
以按预期工作:
Math.round(r.items[k].inventory);
答案 1 :(得分:1)
Math.round工作正常。把你想要的东西放在括号()
之间。
let foo = {
stat: "ok",
items: {
apple: {
inventory: 18.45
}
}
}
function D(r) {
if (r.stat === "ok") {
for (var k in r.items) {
console.log(Math.round(r.items[k].inventory))
}
}
}
D(foo);
&#13;
答案 2 :(得分:0)
有很多方法可以对每个数字进行四舍五入。
通常你会四舍五入到最接近的整数
Math.round(9.4) == 9; // is true
Math.round(9.6) == 10; // is true
Math.round(-9.4) == -9; // is true
Math.round(-9.6) == -10; // is true
如果您正在向中途走向无限
Math.round(9.5) == 10; // is true
Math.round(-9.5) == 9; // is true
您不舍入到最近的偶数
Math.round(8.5) == 9; // is true
Math.round(-7.5) == -7; // is true
如果你想要使中间点远离0,你可以使用
9.5.toFixed() == 10; // is true
-9.5.toFixed() == -10; // is true
注意结果是一个字符串,所以如果你想要一个数字转换如下
Number( 9.5.toFixed()) === 10; // is true
Number(-9.5.toFixed()) === -10; // is true
如果您希望舍入到最近,即使您必须创建一个函数
const roundEven = (val) => {
if (Math.abs(val % 1) === 0.5) {
return (val = Math.round(val), val - (val % 2) * Math.sign(val));
}
return Math.round(val);
}
roundEven(9.5) === 10; // is true
roundEven(-9.5) === -10; // is true
roundEven(8.5) === 8; // is true
roundEven(-8.5) === -8; // is true
show("Math.round(9.4) === " + Math.round(9.4))
show("Math.round(9.6) === " + Math.round(9.6))
show("Math.round(-9.4) === " + Math.round(-9.4))
show("Math.round(-9.6) === " + Math.round(-9.6))
show("Math.round(9.5) === " + Math.round(9.5) )
show("Math.round(-9.5) === " + Math.round(-9.5) )
show("Math.round(8.5) === " + Math.round(8.5) )
show("Math.round(-7.5) === " + Math.round(-7.5) )
show(" 9.5.toFixed() === '" + 9.5.toFixed() + "'" )
show("-9.5.toFixed() === '" + -9.5.toFixed() + "'" )
show("Number( 9.5.toFixed()) === " + Number(9.5.toFixed()))
show("Number(-9.5.toFixed()) === " + Number(-9.5.toFixed()))
const roundEven = (val) => {
if (Math.abs(val % 1) === 0.5) {
return (val = Math.round(val), val - (val % 2) * Math.sign(val));
}
return Math.round(val);
}
show("roundEven(9.5) === " + roundEven(9.5))
show("roundEven(-9.5) === " + roundEven(-9.5))
show("roundEven(8.5) === " + roundEven(8.5))
show("roundEven(-8.5) === " + roundEven(-8.5))
show("roundEven(0.5) === " + roundEven(0.5))
show("roundEven(-0.5) === " + roundEven(-0.5))
function show(text){
const d = document.createElement("div");
d.textContent = text;
document.body.appendChild(d);
}