webForumDet fria alternativet

Avrunda heltal till jämna tio-tal uppåt

ASP

7 svar · 343 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Tjenixen!
Nån som har en function eller en smart idé på hur man enklast avrundar en variabel och skapar en ny t.ex:
----------------------------------------------------
variabel1 -> variabel2
4 till 10
43 till 50
176 till 180
...osv, alltså avrunda bara uppåt.

Jag har alltså bara variabel 1 och vill ha variabel 2 :)

Medlem sedan apr. 2001425 inlägg
#2

Jag kom att tänka på att jag har ett liknande problem !

Löste det så här:

function RoundUp(str)
	Do until Round(str/10)>str/10:str=str+1:loop
	RoundUp=Round(str/10)*10
end function

response.write RoundUp(1666)

:)

Medlem sedan dec. 200012 464 inlägg
#3
function f(v)
 if v mod 10 <> 0 then f = round(v/10+0.5)*10 else f = v
end function

vad skall hända om det redan är jämnt tiotal?
med ovanstående funktion så görs ingenting om talet är jämnt delbart med 10.

Medlem sedan apr. 2001425 inlägg
#4

LarsG:s exempel är nog att föredra (som vanligt!?)

Mitt exempel rundar även ex.180 till 190

men det går ju att ordna i o f, men kan man slippa loop:en så är ju det ju att föredra...

Mvh

Medlem sedan apr. 20021 203 inlägg
#5

LarsG: Vad gör mod?
Och Round avrundar till närmste heltal, eller?

:)

Medlem sedan juni 20003 076 inlägg
#6

LarsG skrev:

vad skall hända om det redan är jämnt tiotal?
med ovanstående funktion så görs ingenting om talet är jämnt delbart med 10.

Precis så ska re va :) :bire

Medlem sedan dec. 200012 464 inlägg
#7

mod innebär att man får resten vid en division

24 mod 6 = 0 'eftersom 24 är jämnt delbart med 6

24 mod 7 = 3 'eftersom ...

Medlem sedan maj 2001431 inlägg
#8

Ett enklare alternativ är

Function runda(tal)
    runda = 10 * Int((9 + tal) / 10)
End Function
269 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)