我想知道是否只有在数字以nine
结尾时才可以四舍五入吗?
例如,我有10.9
,应四舍五入为11
,但如果我有10.8
,则不应四舍五入。
答案 0 :(得分:1)
radix = number % 1.0
radix
是否在0.9
和1.0
之间。
> 0.8999
代替>= 0.9
,因为0.9
在IEEE-754中没有确切的表示形式。==
与浮点数一起使用,因为它们没有确切的表示形式。Math.ceil
像这样:
function roundUpIfDotNine( n ) {
var radix = n % 1.0;
if( radix > 0.899 && radix < 1.0 ) {
return Math.ceil( n );
}
else {
return n;
}
}
答案 1 :(得分:1)
您可以检查值。
function round(v) {
return Math.floor(v + 0.1) === v + 0.1
? v + 0.1
: v;
}
console.log(round(10.9)); // 11
console.log(round(10.8)); // 10.8
答案 2 :(得分:0)
通过临时将其转换为字符串,您可以获取最后一个字符并检查它是否为9:
const dontRoundUnlessEndsInNine = (num) => {
return (String(num).substr(-1) === '9') ? Math.ceil(num) : num;
}
答案 3 :(得分:0)
最短的解决方案
function round(v)
{
return(''+v).slice(-1) == 9 ? v + 0.1 : v;
}
console.log(round(10.9)); // 11
console.log(round(10.8)); // 10.8
答案 4 :(得分:0)
我不知道通过使用JS函数来做到这一点 AS如下:
function qwerty() {
var number = 11.9;
var numberStringArr = number.toString().split(".");
if(numberStringArr[1] == 9) { // if condition is true, it will add 1
var num = number + 1;
var numberStringArr = num.toString().split(".")
alert(numberStringArr[0]);
} else {
alert("No Change");
}
}
qwerty();
已为JSFiddle提供了链接 https://jsfiddle.net/2002utewari/0xjh7fp1/