OCamlで浮動小数点型を整数にキャストする方法を教えてください。OCamlでfloatをintにキャストする
私はintからfloatを取得する方法を知っていますが、浮動小数点からintを取得する簡単な方法はないようです。
OCamlで浮動小数点型を整数にキャストする方法を教えてください。OCamlでfloatをintにキャストする
私はintからfloatを取得する方法を知っていますが、浮動小数点からintを取得する簡単な方法はないようです。
# int_of_float ;;
- : float -> int = <fun>
私はあなたが欲しいと仮定近くint
(これはCが行うのと同じように、ゼロに向かって丸め)。
IEEE表現が必要な場合は、Int64.bits_of_float
を参照してください。
することができます単に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
、あなたが本当にそれを切り上げしたい場合最も近い整数