Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Lukujen pyöristäminen ylöspäin

Konna [23.05.2005 08:18:28]

#

Mitenkäs onnistuu helpoiten lukujen pyöristäminen ylöspäin?
Esim. jos tulokseksi tulee 2.04 siitä pitäs tulla 3.

BadSource [23.05.2005 08:57:57]

#

Aina pyöristyä ylös päin, jos desimaaleja ilmenee?

Dim Arvo As Double
Dim i As Integer

'Ajetaan silmukka kolme kertaa jolloin Arvo saa kolme eri arvoa, joita tarkastellaan.
For i = 0 to 2
    Arvo = Iif(i = 0, 2, Iif(i = 1, 2.04, 2.8)) 'Arvo saa arvot 2, 2.04 ja 2.8 kierroksen mukaan
    MsgBox Iif(Arvo <> Round(Arvo), Fix(Arvo) + 1, Arvo) 'MsgBox esittää kolme arvoa: 2, 3 ja 3
Next i

Edit: Arvo <> Round(Arvo) tarkastelee muuttuuko Arvo, kun se pyöristetään kokonaisluvuksi. Jos muuttuu (löytyy desimaaleja), niin lisätään Arvo:n kokonaislukuosaan yksi (Fix(Arvo) + 1), eli "pyoristetään ylöspäin" tai palautetaan luku sellaisenaan.

Konna [23.05.2005 09:03:08]

#

Elikkä aina pyöristyy isommaksi kun desimaaleja esiintyy.

3.6 -> 4
1.05 -> 2
jne....

ja nämä arvot tulevat kahden satunnaisen luvun jakolaskusta...

esakom [23.05.2005 09:29:32]

#

elikkä tuosta BadSourcen vinkistä sellainen versio että tällainen tyhmempikin koodari kuin minä sen ymmärtää:

Dim luku As Double
luku = 2.01 'tämän tilalla sijoitat oman lukusi
If luku <> Round(arvo) Then 'onko desimaaleja
    luku = Fix(luku) + 1 'kokonaisosaa kasvatetaan yhdellä
End If

MsgBox luku

Konna [23.05.2005 09:55:20]

#

Noni nyt toimii! Thx

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta