Вставить float в int в OCaml Как я должен использовать float для целого числа в OCaml? Я знаю, как получить float из int, но, похоже, нет простого способа получить int из float. Ответ 1 # int_of_float ;; - : float -> int = <fun> Я предполагаю, что вы хотите близкий int (этот раунд к нулю, такой же, как C). Если вы хотите представление IEEE, см. Int64.bits_of_float. Ответ 2 вы можете просто 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, если вы действительно хотите округлить его до ближайшего целого числа
Ответ 1 # int_of_float ;; - : float -> int = <fun> Я предполагаю, что вы хотите близкий int (этот раунд к нулю, такой же, как C). Если вы хотите представление IEEE, см. Int64.bits_of_float.
Ответ 2 вы можете просто 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, если вы действительно хотите округлить его до ближайшего целого числа