2011-10-23 10 views

Odpowiedz

21
# int_of_float ;; 
- : float -> int = <fun> 

zakładam chcesz pobliżu int (ta zaokrągla do zera, tak samo jak C robi). Aby uzyskać reprezentację IEEE, patrz .

8

można po prostu truncate to, jeśli część całkowitą pływaka jest to, co chcesz:

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 
*) 

lub floor/ceil, a następnie truncate, jeśli naprawdę chcesz zaokrąglić go do najbliższa liczba całkowita