Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DrHoas
Anmeldungsdatum: 18.10.2007 Beiträge: 3
|
Verfasst am: 18.10.2007, 13:44 Titel: komisches Zahlenformat |
|
|
Hallo,
ich hab ein QBasicprogramm bekommen in dem Zahlen teilweise in folgendem Format dargestellt sind:
7.1336005999999999D-2
Ich weiß, dass das die Zahl 0,71336005999999999 sein soll. Was aber bedeutet das D (kein Tippfehler!!! Es ist ein D, kein E!!! E's kommen aber auch vor)? Ich weiß nichtmal, ob es eine QBasicstruktur ist, oder was Mathematisches (womit ich hier dann völlig falsch wäre).
Danke für eure Hilfe.
Gruß,
Philipp |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.10.2007, 15:37 Titel: |
|
|
sicher dasses 0,7 und nicht 0,07 ist? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 18.10.2007, 15:47 Titel: |
|
|
Hallo,
du kannst solche Zahlen wie folgt als "normale" Dezimalbrüche ausgeben lassen, wenn du die Scientific Notation nicht magst:
Code: | PRINT USING "##.#####"; zahl |
Du hast übrigens im FreeBASIC-Unterforum gepostet. Wenn es tatsächlich um QBasic geht, verschieben wir den Thread ins entsprechende Unterforum hier.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Heizi

Anmeldungsdatum: 19.01.2005 Beiträge: 309
|
Verfasst am: 18.10.2007, 16:16 Titel: |
|
|
das d bedeutet glaub ich *10^-2 ,
also 2 Kommastellen nach links
Gruß
Heizi |
|
Nach oben |
|
 |
DrHoas
Anmeldungsdatum: 18.10.2007 Beiträge: 3
|
Verfasst am: 18.10.2007, 16:52 Titel: |
|
|
MisterD hat Folgendes geschrieben: | sicher dasses 0,7 und nicht 0,07 ist? |
Mist, hat sich doch ein Tippfehler eingeschlichen. Es heißt natürlich 0,07!
Aber warum sind manche Zahlen mit diesem D und andere mit E angegeben. Die Bedeutung von E-2=*10^-2 ist mir schon klar und das D macht anscheinend das gleiche aber wie gesagt, warum einmal D, ein anderes Mal E?
Sebastian hat Folgendes geschrieben: | du kannst solche Zahlen wie folgt als "normale" Dezimalbrüche ausgeben lassen... |
Ich hab die D's und E's im Quellcode und will nur verstehen, was das D bedeutet. Die Ausgabe ist mir nachher egal.
Gruß,
Philipp
PS Verschieben, Ok. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 18.10.2007, 16:55 Titel: |
|
|
Ich habe mir überlegt, ob D vielleicht für doppelte Genauigkeit (double) stehen könnte, habe aber keine Ahnung, ob das stimmt. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 18.10.2007, 16:58 Titel: |
|
|
Ich habe gerade in der MonsterFAQ von QBasic nachgeguckt, bei einfach genauen Zahlen (Single) wird E bei der Exponentialschreibweise verwendet, bei Zahlen mit doppelter Genauigkeit (Double) wird D benutzt. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 18.10.2007, 17:16 Titel: |
|
|
Na, da habe ich ja gut geraten.
Ich glaube, das auch schon irgendwann mal gelesen zu haben, ist aber schon einige Jahre her. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 18.10.2007, 21:28 Titel: |
|
|
Mein berühmter Fliesskommezahlenartikel:
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Gleitkommazahlen.html
Ansonsten entspricht das von Dir beobachtete Verhalten übrigens dem Standardverhalten sämtlicher traditionellen Microsoft-BASIC-Varianten, also auch GW-BASIC und AmigaBASIC auf dem Commodore Amiga (und vermutlich noch diversen anderen Plattformen), wenn der Datentyp DOUBLE (#) als String umgewandelt wird und dabei der Wert wissenschaftlich dargestellt werden soll. Bei SINGLE (!) wird dagegen für die wissenschaftliche Darstellung ein "E" verwendet.
Abhilfen:
- Falls Anzahl signifikanter Stellen weniger als 7 und Wertebereich <= 10^38, dann die Werte mit CSNG() vor der Ausgabe in SINGLE umwandeln (je nach Anwendung reicht vielleicht sogar generell einfachgenaue Berechnung, womit Du entsprechenden Rechenzeitgewinn und Speicherplatzersparnis gewinnen kannst!)
- Wert mit STR$ als String umwandeln und das "D" durch "E" ersetzen. Siehe dazu
http://beilagen.dreael.ch/QB/DBL2SNG.BAS
=> die dortige FUNCTION kannst Du 1:1 in Dein Projekt übernehmen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
DrHoas
Anmeldungsdatum: 18.10.2007 Beiträge: 3
|
Verfasst am: 19.10.2007, 11:43 Titel: |
|
|
super, dass wir das geklärt haben. Danke!!!
Philipp |
|
Nach oben |
|
 |
|