Cast float en int en OCaml Comment suis-je censé jeter un float pour un entier en OCaml? Je sais comment obtenir un flotteur à partir d'un int, mais il ne semble pas être un moyen facile d'obtenir un int, un float. OriginalL'auteur Swiss | 2011-10-23 ocaml 23 # int_of_float ;; - : float -> int = <fun> Je suppose que vous voulez à proximité int (ce arrondit à zéro, comme C est le cas). Si vous voulez de l'IEEE représentation, voir Int64.bits_of_float. OriginalL'auteur Pascal Cuoq 8 vous pouvez simplement truncate, si le partie entière du flotteur est ce que vous voulez: printf "number\tint\tfloor\tceil\n"; List.iter (fun x -> printf "%.1f\t%d\t%.1f\t%.1f\n" x (truncate x) (floor x) (ceil x)) fs;; (* * number int floor ceil * 3.3 3 3.0 4.0 * 3.5 3 3.0 4.0 * 3.7 3 3.0 4.0 * -3.3 -3 -4.0 -3.0 *) ou floor /ceil, puis truncate, si vous voulez vraiment de l'arrondir à l'entier le plus proche OriginalL'auteur tolitius Vous devez vous connecter pour publier un commentaire.
Je suppose que vous voulez à proximité
int
(ce arrondit à zéro, comme C est le cas).Si vous voulez de l'IEEE représentation, voir
Int64.bits_of_float
.OriginalL'auteur Pascal Cuoq
vous pouvez simplement
truncate
, si le partie entière du flotteur est ce que vous voulez:ou
floor
/ceil
, puistruncate
, si vous voulez vraiment de l'arrondir à l'entier le plus procheOriginalL'auteur tolitius