¿Cómo se supone que voy a lanzar un flotante a un entero en OCaml?Transmitir flotante a int en OCaml
Sé cómo obtener una flotación desde un int, pero no parece ser una manera fácil de obtener un int de un float.
¿Cómo se supone que voy a lanzar un flotante a un entero en OCaml?Transmitir flotante a int en OCaml
Sé cómo obtener una flotación desde un int, pero no parece ser una manera fácil de obtener un int de un float.
# int_of_float ;;
- : float -> int = <fun>
Asumo desea una cercana int
(esto redondea hacia cero, al igual que lo hace C).
Si desea la representación de IEEE, consulte Int64.bits_of_float
.
puede simplemente truncate
que, si la parte número entero del flotador es lo que quiere:
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
, y luego truncate
, si realmente desea redondear hacia arriba a la entero más cercano