New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
int_of_float and ocamlopt #8018
Comments
Comment author: administrator
Le Pentium est une architecture un peu spéciale: les calculs flottants Comme ni 4.1 ni 10.0 ne sont représentables exactement en flottants, ocamlc stocke tous les résultats intermédiaires en mémoire (sur 64 bits). Les joies de l'arithmétique flottante.
|
Comment author: administrator On Tue, 18 Feb 2003, Xavier Leroy wrote:
Euh... Tu veux dire arrondi a 40.O j'imagine.
Est-ce à dire que ca n'est pas un bug ? Je suis pret à l'admettre, après tout, les flottants ne sont pas des Mais dans ce cas, let f = 4.1 *. 10. in ... ne devrait pas donner le bon résultat à savoir, 41. -- |
Comment author: administrator
Non, non: la conversion précision étendue -> précision mémoire est
int_of_float est par définition une fonction discontinue, et donc mal
Ben si, parce que là le "let" force un stockage en mémoire du résultat
|
Comment author: administrator On Tue, 18 Feb 2003, Xavier Leroy wrote:
J'avais compris. Je voulais simplement dire que le fait les résultats soient differents En fait, int_of_float ne devrait pas tronquer, mais prendre l'entier le Merci pour toutes ces précisions en tout cas.R1. |
Comment author: administrator
Mon grain de sel. Et non, a priori on obtiendra des différences de comportement du même Il est vrai que c'est sans doute moins perturbant. Sans garanties, parce que les flottants...
--Luc |
Original bug ID: 1546
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Full_Name: erwan jahier
Version: 3.06
OS: linux
Submission from: ossau.imag.fr (129.88.43.4)
let _ =
print_int (int_of_float (4.1 *. 10.)) ;
print_string "\n";
flush stdout
This chunck of code prints 40 if compiled with ocamlopt and 41. with ocamlc...
41
The text was updated successfully, but these errors were encountered: