Come faccio a trasmettere un float a un intero in OCaml?Cast float to int in OCaml
So come ottenere un float da un int, ma non sembra essere un modo semplice per ottenere un int da un float.
Come faccio a trasmettere un float a un intero in OCaml?Cast float to int in OCaml
So come ottenere un float da un int, ma non sembra essere un modo semplice per ottenere un int da un float.
# int_of_float ;;
- : float -> int = <fun>
Presumo che si desidera una vicina int
(questo arrotonda a zero, uguale a C fa).
Se si desidera la rappresentazione IEEE, vedere Int64.bits_of_float
.
si può semplicemente truncate
, se la parte intero del galleggiante è ciò che si vuole:
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
*)
o floor
/ceil
, e poi truncate
, se si vuole veramente per arrotondare fino al numero intero più vicino