| |
Allgemeine DiskussionenVB 6.0 - Rechenfehler mit Variant, Single und Double-Typen | | | Autor: Marten | Datum: 27.10.17 01:24 |
| Hallo zusammen!
Tja, der Zahn der Zeit nagt an mir, und so wollte ich "mal eben" einen Taschenrechner mit Ultra-fettem Display bauen, das auch ich ablesen kann.
Beim Testen (durch Programm und auch Debugger) stieß ich auf folgendes "Wunder":
? 7.2 - 7
0,2
? 8.2 - 8
0,199999999 ....
Habe es mit Variant, Single und DoubleTypen probiert - jeweils das gleiche Ergebnis.
Kennt jemand eine Lösung oder ein Workaround?
Vielen Dank fürs Lesen
Marten | |
Re: VB 6.0 - Rechenfehler mit Variant, Single und Double-Typen | | | Autor: Zardoz | Datum: 27.10.17 13:40 |
| Hallo Marten,
das sind Rechenungenauigkeiten, die bei der
Umrechnung zwischen binär und dezimal entstehen.
Du kannst den Variablentyp Decimal verwenden,
oder Runden:
? CDec(8.2)-8 ? Round(8.2-8,10) Gruss,
Zardoz | |
Re: VB 6.0 - Rechenfehler mit Variant, Single und Double-Typen | | | Autor: Manfred X | Datum: 27.10.17 13:50 |
| Hallo!
Die VB6-Gleitkomma-Datentypen Single und Double (IEEE) arbeiten
mit begrenzter Genauigkeit - auch bei der internen Darstellung.
Rechenergebnisse stimmen deshalb häufig nicht exakt mit dem
erwarteten Resultat überein.
Je (absolut) größer der Zahlen-Wert, desto geringer die Genauigkeit.
Du hast die Möglichkeit, abhängig von der Ausprägung des Ergebnisses
geeignet zu runden. Double-Werte bieten etwa 14 verwertbare Stellen,
d.h. bei einem Wert von 100000 wäre auf etwa 8 Nachkomma-Stellen zu
runden.
Dim dbl1 As Double, dbl2 As Double, erg As Double
Dim erg_str As String
dbl1 = 8.2: dbl2 = 8
erg = dbl1 - dbl2
erg_str = Format(erg, "0.#############") | |
Re: VB 6.0 - Rechenfehler ... Danke für die Hilfe | | | Autor: Marten | Datum: 29.10.17 03:45 |
| Hallo Zardoz und Manfred X!
Besten Dank für Eure Tips!
Habe letztendlich:
Result = Cdec(Firstnum) - Cdec(Secondnum)
erfolgreich eingesetzt.
Zusätzlich vielen Dank für die interessanten Hintergründe zu diesen Rechenfehlern!
Wünsche eine schöne (Herbstferien-)Woche
Marten | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|