在JavaScript中,如何仅在数字以9结尾时舍入?
我想知道是否有办法只在我的数字以在JavaScript中,如何仅在数字以9结尾时舍入?,javascript,rounding,Javascript,Rounding,我想知道是否有办法只在我的数字以nine结尾时对其进行四舍五入 例如,我的10.9应该四舍五入到11,但如果我的10.8则不应该四舍五入 获取数字的小数(基数)部分。 基数=数字%1.0 检查基数是否在0.9和1.0之间。 实际上使用>0.8999而不是=0.9,因为0.9在IEEE-754中没有精确的表示 切勿将==用于浮点数,因为它们没有精确的表示形式 如果基数介于范围之间,请使用Math.ceil 像这样: function roundUpIfDotNine( n ) {
nine
结尾时对其进行四舍五入
例如,我的10.9
应该四舍五入到11
,但如果我的10.8
则不应该四舍五入
基数=数字%1.0
0.9
和1.0
之间。
- 实际上使用
而不是>0.8999
,因为=0.9
在IEEE-754中没有精确的表示0.9
- 切勿将
用于浮点数,因为它们没有精确的表示形式==
Math.ceil
function roundUpIfDotNine( n ) {
var radix = n % 1.0;
if( radix > 0.899 && radix < 1.0 ) {
return Math.ceil( n );
}
else {
return n;
}
}
函数roundUpIfDotNine(n){
变量基数=n%1.0;
if(基数>0.899&&基数<1.0){
返回Math.ceil(n);
}
否则{
返回n;
}
}
通过将其临时转换为字符串,您可以获取最后一个字符并检查它是否为9:
const dontRoundUnlessEndsInNine = (num) => {
return (String(num).substr(-1) === '9') ? Math.ceil(num) : num;
}
您可以检查值
函数轮(v){
返回数学楼层(v+0.1)==v+0.1
?v+0.1
:v;
}
console.log(圆形(10.9));//11
console.log(圆形(10.8));//10.8最短路的解决方案
函数轮(v)
{
返回(''+v).slice(-1)==9?v+0.1:v;
}
console.log(圆形(10.9));//11
console.log(圆形(10.8));//10.8
我对使用JS函数实现这一点有点想法
详情如下:
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();
已经为JSFIDLE提供了一个链接
当然有!你试过什么?我建议不要用javascript来计算。。。如果可能的话,让我稍作修改。您需要在问题中添加一个代码示例。欢迎使用堆栈溢出!请带上这本书,参观一下,然后仔细阅读。在做了一些研究和相关的话题之后,你可以自己尝试一下。如果你被卡住了,在你被卡住的地方贴一张你的试贴。人们会很乐意帮忙的。3.49会变成3.5,而3.48会保持在3.48吗?负数的值只是正数的反映吗?你需要一个更详细的说明。只有当数字在.9和1之间时,这才有效,对吗?我的小提琴有点不对劲。是的,有些地方不对劲:console.log(roundUpIfDotNine(0.1))//1
虽然没有明确说明,但我可以想象需要对.9
或更高版本的内容进行取整