Mitenkäs onnistuu helpoiten lukujen pyöristäminen ylöspäin?
Esim. jos tulokseksi tulee 2.04 siitä pitäs tulla 3.
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.
Elikkä aina pyöristyy isommaksi kun desimaaleja esiintyy.
3.6 -> 4
1.05 -> 2
jne....
ja nämä arvot tulevat kahden satunnaisen luvun jakolaskusta...
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
Noni nyt toimii! Thx
Aihe on jo aika vanha, joten et voi enää vastata siihen.