OCaml

2011-10-23 11 views
12

में int के लिए फ्लोट कास्ट करें ओकैमल में एक पूर्णांक में मुझे फ़्लोट कैसे डालना चाहिए?OCaml

मुझे पता है कि एक इंट से फ्लोट कैसे प्राप्त करें, लेकिन फ्लोट से इंट प्राप्त करने का एक आसान तरीका प्रतीत नहीं होता है।

उत्तर

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

मुझे लगता है आप चाहते हैं एक पास int (यह शून्य की ओर दौर, सी करता है एक ही रूप में)।

यदि आप आईईईई प्रतिनिधित्व चाहते हैं, तो Int64.bits_of_float देखें।

8

आप कर सकते हैं बस 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, यदि आप वास्तव में करने के लिए इसे पूर्णांक बनाना चाहते हैं निकटतम पूर्णांक