Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
9816
Anmeldungsdatum: 27.03.2012 Beiträge: 4
|
Verfasst am: 10.08.2015, 16:09 Titel: Rechengenauigkeit während der Auswertung von Ausdrücken ? |
|
|
Hallo
weiß jemand wie Freebasic die Rechengenauigkeitsanpassung beim Auswerten eines Terms mit verschieden Variablentypen vornimmt?
Passiert das wie bei FORTRAN, wo es eindeutig definiert ist?
Beispiel:
Defdbl a-z
defint i-n
i=3: j=5
a=1.
r=a*(i/j)
Wo macht der Compiler hier die erste Wandlung nach Real*8 für's Weiterrechen? Ist das genau definiert?
Ich konnte leider nichts dazu finden.
Danke
RPE |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.08.2015, 17:12 Titel: |
|
|
Die Umwandlung passiert da, wo sie nötig ist. Ist sie für den Ausdruck 3/5 nötig? Nein, sind beides Integer. Ist sie für a*x (x sei das Ergebnis von 3/5) nötig? Ja, denn a ist ein Double und x ein Integer. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Toa-Nuva
Anmeldungsdatum: 14.04.2006 Beiträge: 204 Wohnort: München
|
Verfasst am: 10.08.2015, 18:36 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Die Umwandlung passiert da, wo sie nötig ist. Ist sie für den Ausdruck 3/5 nötig? Nein, sind beides Integer. |
Ich dachte, / in FreeBASIC wäre immer eine Double-Division? Hab ich zumindest so in Erinnerung und so verstehe ich es auch in der Referenz: https://www.freebasic-portal.de/befehlsreferenz/slash-444.html "Der Rückgabewert einer Division ist immer DOUBLE."
Für die Integer-Division gibt es in FB ja einen eigenen Operator, nämlich \ _________________ 704 Signature not found |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.08.2015, 19:50 Titel: |
|
|
Ach stimmt ja... Prinzpiell gilt aber weiterhin: Eine Umwandlung passiert nur, wenn es nötig ist. Im Falle von / ist sie eben nötig, weil der Operator nur Doubles verwenden kann. Wäre der Ausdruck a*(i+j), würde meine vorherige Beschreibung weiterhin gelten. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
9816
Anmeldungsdatum: 27.03.2012 Beiträge: 4
|
Verfasst am: 11.08.2015, 10:12 Titel: |
|
|
Danke also nicht ganz wie in FORTRAN
9816 |
|
Nach oben |
|
 |
|