Avatar billede hejhejhej Nybegynder
04. juni 2004 - 14:32 Der er 14 kommentarer og
1 løsning

hvordan runder man et decimaltal op ?

Hvordan kan man runde et decimaltal op i visual basic?

fx
dim x,y as integer
x=9
y=2
text1.text = x/y

det ønskede resultat er så 5 da 9/2 = 4.5 skal rundes op
Avatar billede overchord Nybegynder
04. juni 2004 - 14:36 #1
Du kan bruge CInt(x/y)
Avatar billede hejhejhej Nybegynder
04. juni 2004 - 14:41 #2
dim x,y as integer
x=9
y=2
text1.text = Cint(x/y)

giver 4, altså bliver der rundet ned
Avatar billede overchord Nybegynder
04. juni 2004 - 14:44 #3
proev med Int(x/y)
Avatar billede fgsupermand Nybegynder
04. juni 2004 - 14:45 #4
CInt er måske ikke den beste ide, den runder nemlig ikke altid op

fra MSDN:
"Note  CInt differs from the Fix and Int functions, which truncate, rather than round, the fractional part of a number. When the fractional part is exactly 0.5, the CInt function always rounds it to the nearest even number. For example, 0.5 rounds to 0, and 1.5 rounds to 2."

Så det er nok bedre at bruge round()
Avatar billede hejhejhej Nybegynder
04. juni 2004 - 14:45 #5
der rundes stadig ned
Avatar billede fgsupermand Nybegynder
04. juni 2004 - 14:45 #6
Int() runder ikke op eller ned, den fjerner bare decimalerne
Avatar billede hejhejhej Nybegynder
04. juni 2004 - 14:47 #7
hvordan kan man bruge round således at 9/2 giver 5
Avatar billede hejhejhej Nybegynder
04. juni 2004 - 14:47 #8
Text1.Text = Round(9/ 2)
giver 4
Avatar billede fgsupermand Nybegynder
04. juni 2004 - 14:58 #9
Hov det har du jo helt ret i :(

Så ved jeg faktisk ikke om der er en indbygget funktion der kan gøre det, ellers kan man jo selv lave den
Avatar billede hejhejhej Nybegynder
04. juni 2004 - 15:00 #10
ja tror det er eneste mulighed
Avatar billede the_email Nybegynder
04. juni 2004 - 15:02 #11
Kan man ikke bruge fix-funktionen:
Text1.Text = Fix(9/2,0)

Har ikke testet det.
/TheEmail
Avatar billede hejhejhej Nybegynder
04. juni 2004 - 15:08 #12
nej, men jeg har løst problemet ved at lave en funktion
Avatar billede kabbak Professor
04. juni 2004 - 15:09 #13
Dim x, y As Integer
x = 9
y = 2
If x / y - Int(x / y) > 0# Then
Text1.Text = Round(x / y) + 1
Else
Text1.Text = Round(x / y)
End If
04. juni 2004 - 15:21 #14
fgsupermand->
Prøv selv at teste på:
Round(1.5)
Round(2.5)
Round(3.5)
Round(4.5)

Meget interessant resultat (hver anden rundes op og hver anden rundes ned)
Det skyldes den måde som banker runder af på, af en eller anden grund!
Avatar billede fgsupermand Nybegynder
04. juni 2004 - 15:25 #15
thomasjepsen:
Ja den under op/ned til det nærmeste runde tal, altså 2, 4, 6 osv.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester