如何舍入到 JavaScript 中最接近的整数
How to Round to nearest integer in JavaScript
您好,我正在使用 JavaScript 连接到我的 html 代码来制作转换计算器。我遇到的问题是如何将我的结果变成一个四舍五入的整数。我是 JavaScript 的新手,并且尝试了很多尝试使 Math.round(report1) 或 Math.round(report2) 在我的代码中起作用。也许我必须创建一个单独的函数?我很难过,希望对此有任何帮助。
//displaing reported values...for kg to pounds
var report1 = function (kilogram, pound) {
document.getElementById("result").innerHTML =
kilogram + "kg = " + pound + "lb";
};
//displaing reported values...for pounds to kilograms
var report2 = function (pound, kilogram) {
document.getElementById("result").innerHTML =
pound + "lb = " + kilogram + "kg";
};
//reading in value from lb to kg button
document.getElementById("p_to_kg").onclick = function () {
var p = document.getElementById("weight").value;
report2(p, p_to_kg(p));
};
//formula for pounds to kilograms
function p_to_kg(pound_weight) {
return (pound_weight / 2.2);
}
//reading in value from kg to lb button
document.getElementById("kg_to_p").onclick = function () {
var kg = document.getElementById("weight").value;
report1(kg, kg_to_p(kg));
};
//formula for kilograms to pounds
function kg_to_p(kilogram_weight) {
return (2.2 * kilogram_weight);
}
这是我的问题:
Math 对象有三种方法,Number 中有一种方法,您可以使用:
var f = 56.14523;
console.log('f: '+f);
console.log('Math.round: '+Math.round(f));
console.log('Math.ceil: '+Math.ceil(f));
console.log('Math.floor: '+Math.floor(f));
console.log('Number.toFixed: '+f.toFixed(2));
输出为:
f: 56.14523
Math.round: 56
Math.ceil: 57
Math.floor: 56
Number.toFixed: 56.15
如果小数点为 .5 或更大,Math.round 将四舍五入到下一个整数。
Math.ceil 将始终将该值增加到下一个整数。
Math.floor 将始终将值减小到下一个整数。
Number.toFixed 将舍入到作为参数传递的小数位数。
如果您从输入中获取值,您必须首先使用 parseFloat 将它们从字符串转换为浮点值。例如:
function processNumber() {
var f = document.getElementById("float-input").value;
f = parseFloat(f);
if (isNaN(f)) {
console.log(f+" is not a number");
} else {
console.log(f+" rounded is "+Math.round(f));
}
return "Temperature: " + Math.round(f) + " degrees";
}
document.getElementById("output-div").textContent = processNumber();
HTML 输入值类型是字符串,因此要计算它们的舍入值,您应该将它们转换为数字。有很多方法可以将它们转换为数字,例如使用 string
值调用 Number
或添加 plus sign
(+)(或除法或乘法):
var val = document.querySelector('#val');
var k2l = document.querySelector('#kg-to-lb');
var l2k = document.querySelector('#lb-to-kg');
var res = document.querySelector('#result');
//displaing reported values...for kg to pounds
var report1 = function(kilogram, pound) {
result.innerHTML =
kilogram + "kg = " + pound + "lb";
};
//displaing reported values...for pounds to kilograms
var report2 = function(pound, kilogram) {
result.innerHTML = pound + "lb = " + kilogram + "kg";
};
k2l.addEventListener('click', function(e) {
var kilogram = val.value;
var pound = Math.round(kilogram * 2.2);
report1(kilogram, pound);
});
l2k.addEventListener('click', function(e) {
var pound = val.value;
var kilogram = Math.round(pound / 2.2);
report2(pound, kilogram);
});
value
<input id="val" type="number" />
<button id="kg-to-lb">kg 2 lb</button>
<button id="lb-to-kg">lb 2 kg</button>
<div id="result"></div>
您好,我正在使用 JavaScript 连接到我的 html 代码来制作转换计算器。我遇到的问题是如何将我的结果变成一个四舍五入的整数。我是 JavaScript 的新手,并且尝试了很多尝试使 Math.round(report1) 或 Math.round(report2) 在我的代码中起作用。也许我必须创建一个单独的函数?我很难过,希望对此有任何帮助。
//displaing reported values...for kg to pounds
var report1 = function (kilogram, pound) {
document.getElementById("result").innerHTML =
kilogram + "kg = " + pound + "lb";
};
//displaing reported values...for pounds to kilograms
var report2 = function (pound, kilogram) {
document.getElementById("result").innerHTML =
pound + "lb = " + kilogram + "kg";
};
//reading in value from lb to kg button
document.getElementById("p_to_kg").onclick = function () {
var p = document.getElementById("weight").value;
report2(p, p_to_kg(p));
};
//formula for pounds to kilograms
function p_to_kg(pound_weight) {
return (pound_weight / 2.2);
}
//reading in value from kg to lb button
document.getElementById("kg_to_p").onclick = function () {
var kg = document.getElementById("weight").value;
report1(kg, kg_to_p(kg));
};
//formula for kilograms to pounds
function kg_to_p(kilogram_weight) {
return (2.2 * kilogram_weight);
}
这是我的问题:
Math 对象有三种方法,Number 中有一种方法,您可以使用:
var f = 56.14523;
console.log('f: '+f);
console.log('Math.round: '+Math.round(f));
console.log('Math.ceil: '+Math.ceil(f));
console.log('Math.floor: '+Math.floor(f));
console.log('Number.toFixed: '+f.toFixed(2));
输出为:
如果小数点为 .5 或更大,f: 56.14523
Math.round: 56
Math.ceil: 57
Math.floor: 56
Number.toFixed: 56.15
Math.round 将四舍五入到下一个整数。
Math.ceil 将始终将该值增加到下一个整数。
Math.floor 将始终将值减小到下一个整数。
Number.toFixed 将舍入到作为参数传递的小数位数。
如果您从输入中获取值,您必须首先使用 parseFloat 将它们从字符串转换为浮点值。例如:
function processNumber() {
var f = document.getElementById("float-input").value;
f = parseFloat(f);
if (isNaN(f)) {
console.log(f+" is not a number");
} else {
console.log(f+" rounded is "+Math.round(f));
}
return "Temperature: " + Math.round(f) + " degrees";
}
document.getElementById("output-div").textContent = processNumber();
HTML 输入值类型是字符串,因此要计算它们的舍入值,您应该将它们转换为数字。有很多方法可以将它们转换为数字,例如使用 string
值调用 Number
或添加 plus sign
(+)(或除法或乘法):
var val = document.querySelector('#val');
var k2l = document.querySelector('#kg-to-lb');
var l2k = document.querySelector('#lb-to-kg');
var res = document.querySelector('#result');
//displaing reported values...for kg to pounds
var report1 = function(kilogram, pound) {
result.innerHTML =
kilogram + "kg = " + pound + "lb";
};
//displaing reported values...for pounds to kilograms
var report2 = function(pound, kilogram) {
result.innerHTML = pound + "lb = " + kilogram + "kg";
};
k2l.addEventListener('click', function(e) {
var kilogram = val.value;
var pound = Math.round(kilogram * 2.2);
report1(kilogram, pound);
});
l2k.addEventListener('click', function(e) {
var pound = val.value;
var kilogram = Math.round(pound / 2.2);
report2(pound, kilogram);
});
value
<input id="val" type="number" />
<button id="kg-to-lb">kg 2 lb</button>
<button id="lb-to-kg">lb 2 kg</button>
<div id="result"></div>