Ich habe versucht, Fortran für mein Forschungsprojekt zu verwenden, mit dem GNU Fortran Compiler (Gfortran), neueste Version, , aber ich habe einige Probleme in der Art, wie es real verarbeitet Zahlen. Wenn Sie den Code beispielsweise haben:Präzisionsprobleme von reellen Zahlen in Fortran
program test
implicit none
real :: y = 23.234, z
z = y * 100000
write(*,*) y, z
end program
Sie werden als Ausgabe erhalten:
23.23999 2323400.0
Das finde ich wirklich seltsam. Kann mir jemand sagen, was genau hier passiert? Wenn ich z sehe, kann ich sehen, dass y seine Präzision behält, also für Berechnungen, die kein Problem sein sollten, nehme ich an. Aber warum ist die Ausgabe von y nicht genau das Gleiche wie der Wert, den ich angegeben habe, und was kann ich tun, um es genau so zu machen?
Sie verwenden einfach präzise IEEE-754 Floats - lesen Sie diese: http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –