matematik - Javascript: Sonraki 5'in katına yuvarlama


2 ila 5 basamak uzunluğunda olan bir tamsayı değeri alan ve 5'in en yakın katı yerine 5'in sonraki katına yuvarlayan bir yardımcı işleve ihtiyacım var. İşte elimdekiler:

function round5(x)
{
    return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}

Ben round5(32) çalıştırdığımda, bana 30 veriyor, oysa 35 istiyorum.
Ben round5(37) çalıştırdığımda, bana 35 veriyor, oysa 40 istiyorum.

Ben round5(132) çalıştırdığımda bana 130 veriyor, oysa istediğim 135.
Ben round5(137) çalıştırdığımda bana 135 veriyor, oysa istediğim 140.

vb...

Bunu nasıl yapabilirim?

Cevap #1

Bu işi yapacak:

function round5(x)
{
    return Math.ceil(x / 5) * 5;
}

Bu, yaygın number değerini x katına en yakın değere yuvarlama işlevinin Math.round(number/x)*x bir varyasyonudur, ancak .round yerine .ceil kullanmak, matematik kurallarına göre aşağı/aşağıyukarı yuvarlamak yerine her zaman yukarı yuvarlamasını sağlar.

Cevap #2

const roundToNearest5 = x => Math.round(x / 5) * 5

Bu sayı, en yakın 5'e yuvarlanacaktır. Her zaman en yakın 5'e yukarı yuvarlamak için Math.ceil kullanın. Benzer şekilde, her zaman aşağı yuvarlamak için Math.round yerine Math.floor kullanın. Ardından bu fonksiyonu, diğer fonksiyonları çağırdığınız gibi çağırabilirsiniz. Örneğin,

roundToNearest5(21)

geri dönecek:

20

İlgili makaleler