Javascript kullanarak, bir kullanıcının geçirdiği sayıyı en yakın 10'a yuvarlamak istiyorum. Örneğin, 7'yi geçerse 10'u, 33'ü geçerse 30'u döndürmeliyim.
Yanıtlar:
Sayıyı 10'a bölün, sonucu yuvarlayın ve tekrar 10 ile çarpın:
var number = 33;
console.log(Math.round(number / 10) * 10);
Math.round(x / 10) * 10
Nerede i bir int.
En yakın 10 katına yuvarlamak için yani
11, 10 olur
19, 10
olur 21, 20 olur
parseInt(i / 10, 10) * 10;
En yakın 10 katına yuvarlamak için yani
11 20 olur 19
20 olur
21 30 olur
parseInt(i / 10, 10) + 1 * 10;
Benzer bir şeye ihtiyacım vardı, bu yüzden bir fonksiyon yazdım. Fonksiyonu burada ondalık yuvarlama için kullandım ve tamsayı yuvarlama için de kullandığım için, burada da cevap olarak ayarlayacağım. Bu durumda, yuvarlamak istediğiniz sayıyı ve ardından yuvarlamak istediğiniz sayı olan 10'u iletin.
function roundToNearest(numToRound, numToRoundTo) {
return Math.round(numToRound / numToRoundTo) * numToRoundTo;
}
.25istiyorsanız, basitçe .25ikinci argüman olarak kullanabilirsiniz . Formülleri diğer cevaplarda kullanacak 4olsaydınız, yuvarlamak istediğinizde ikinci argüman olarak kullanmanız gerekir .25, ki bu sezgisel değildir.
.252. argüman olarak kullanarak doğru cevabı döndürüyorfunction roundTo(x,y){return Math.round(x / y) * y}
Math.floorYukarı doğru yuvarlamayı önlemek istiyorsanız, bu teknik de işe yarar