Rechenprobleme
Übersicht

phil217Betreff: Rechenprobleme |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Servus!
ich bastel grad so n bisschen rum und hänge an nem etwas seltsamen Problem Code: [AUSKLAPPEN] a = 169445
Print a Print (600^2)*170 a = a+(600^2)*170 Print a WaitKey End Wenn ich mir nen Taschenrechner nehm und das ausrechne kommt 61369445 raus, blitz basic gibt 61369444 zurück. Woran liegt das? Hängt das irgendwie damit zusammen dass er bei 600^2 ne Kommazahl draus macht?(mit 600*600 funktionierts, das nützt mir aber nichts da ichs in ner Formel mit 600^i brauch) danke schonmal für eure Hilfe Phil217 |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
die Rechengenauigkeit von floats ist da leider sehr begrenzt.
Du könntest allerdings zumindest einen Workaround machen: Code: [AUSKLAPPEN] Function hoch(base,Expo=2)
wert = base For i = 1 To expo-1 wert = wert * base Next Return wert End Function Print hoch(600,11) WaitKey Geht halt nur innerhalb der Grenzen eines integer, also bis ca. 2 Mrd. EDIT: 600^11 ligt also grade ausserhalb, daher wird 0 zurückgegeben. 600^10 geht noch. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
phil217 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das heißt er kann zwar 170*(600^2) ausrechnen, aber dann nicht 169455 dazuzählen?... das is wirklich seltsam
jop auf die idee mit der for Schleife bin ich auch schon gekommen, wollt nur wissen warum es anders nich geht warum wandelt er die Zahlen überhaupt in Floats um? MfG Phil217 |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du "600^2" in einen Integer umwandelst, kommt das richtige Ergebnis raus.
Code: [AUSKLAPPEN] 169445 + Int( 600^2 ) * 170
Oder du schreibst, wie BladeRunner schon gesagt hat, deine eigene Funktion. Allerdings geht das auch ein bisschen einfacher. ![]() Code: [AUSKLAPPEN] Function Hoch( basis, exponent )
Return Exp( exponent * Log( basis ) ) End Function |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
phil217 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das probier ich gleich mal
Danke schonmal Phil217 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group