Avrundning med vb6 ger avrundning enligt regel Hej Fungerar, tack Jag har fått lära mig att .5 alltid ska avrundas uppåt och jag tvivlar på att det skulle vara ändrat... Den "gamla regeln" kallas Banker's Rounding, och det är dokumenterat att Round() funkar så. Se Om du använder Format() för avrundning så bör du vara metveten om att det finns en bug i Windows XP som gör att resultatet blir annorlunda än på tidigare Windows versioner. Det här ska tydligen fixas i SP1.Round, rätt eller fel ???
att siffran före bestämmer om det skall avrundas upp eller ned
och då om den är jämn eller ojämn.
tex om man bara vill ha heltal
4.49 avrundas till 4
4.50 avrundas till 4
4.51 avrundas till 5
5.49 avrundas till 5
5.50 avrundas till 6
5.51 avrundas till 6
Skall det verkligen vara så eller är detta någon
typisk amerikansk modell för avrundning ???
Hade för mig att man gått ifrån denna "gamla regel" och
alltid använder sig av att det ej spelar roll med jämn resp, ojämn siffra
framför.
Tacksam för synpunkter och rätt svar (om det finns något)
Skiljer det sig mot hur detta är ordnat i c, c++ o.s.v.
i deras mattematikbibliotek ???
Om detta skiljer sig åt mellan programspråk kan det bli
lite lurigt tex i ekonomiska system.
/Roland Sv: Round, rätt eller fel ???
Prova med följande lösrning. Lägg denna funktion i en modul
Function Round(ByVal nValue As String, nDigits As Integer) As String
If nValue = 0 Then
Round = 0
Else
ww = Int(nValue * (10 ^ nDigits) + 0.5) / (10 ^ nDigits)
If nDigits = 0 Then
zy = ww
ElseIf nDigits = 1 Then
zy = Format(ww, "#0.0")
ElseIf nDigits = 2 Then
zy = Format(ww, "#0.00")
ElseIf nDigits = 3 Then
zy = Format(ww, "#0.000")
End If
xy = InStr(zy, ","): If xy > 0 Then Mid$(zy, xy, 1) = "."
Round = zy
End If
End FunctionSv: Round, rätt eller fel ???
Men återstår lite: Vilket är rätt sätt att genomföra avrundning på ?
Även om man kan anse att det blir mer rätt med
att avrunda ojämna uppåt tex 5.5 -> 6 och låta jämna bli 6.5 -> 6
Men vad är korrekt sätt ???
/RolandSv: Round, rätt eller fel ???
/JohanSv: Round, rätt eller fel ???
HOWTO: Implement Custom Rounding Procedures
http://support.microsoft.com/?scid=kb;en-us;Q196652
MSSv: Round, rätt eller fel ???
The Format() Function Gives Different Results in Windows XP Than in Windows 2000
http://support.microsoft.com/?scid=kb;en-us;q321047
MS