Вы можете просто truncate
, если целочисленная часть числа с плавающей запятой - то, что вы хотите:
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
*)
или floor
/ ceil
, а затем truncate
, если вы действительно хотите округлить его до ближайшего целого числа