将数字四舍五入到最接近的9

时间:2018-12-03 12:10:51

标签: javascript algorithm

我有一个数字99,我想将其乘以1.2得出118.8,然后将其舍入到最接近的9以获得119。

另一个示例是将119除以1.2 = 99.16,四舍五入到最接近的9等于99。

我已经开始这样做了:

var number = 99
var numberMultiplied = number * 1.2
var numberRounded = Math.round(numberMultiplied / 9)*9
console.log(numberRounded )

但是它给了我117,而不是119 ...我在做什么错了?

3 个答案:

答案 0 :(得分:1)

首先,将数字四舍五入到最近的十分之一

Math.round(++numberMultiplied / 10) * 10

然后从中减去1

var number = 99
var numberMultiplied = number * 1.2
var numberRounded = Math.round(++numberMultiplied / 10) * 10 - 1
console.log(numberRounded)

答案 1 :(得分:1)

您需要做的是将数字偏移1,并利用您已经知道如何舍入到最接近的10的事实:

var numberRounded = Math.round((numberMultiplied + 1) / 10)*10 - 1;

答案 2 :(得分:0)

您有2种情况: 1:如果相乘的数字为173,则该数字更接近169 2:如果相乘的数字是177,则数字更接近179

您可以执行以下操作:

var divNumber = multipliedNumber / 10;
var modNumber= multipliedNumber % 10 ;
if(modNumber < 5){ divNumber = divNumber * 10 - 1 }else{ divNumber = divNumber * 10 + 9 }