10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-12-22 20:33:36 +01:00
QCaml/Utils/Charge.ml

33 lines
653 B
OCaml
Raw Normal View History

2018-01-02 22:02:01 +01:00
type t = float
2018-03-16 00:23:47 +01:00
external of_float : float -> t = "%identity"
external to_float : t -> float = "%identity"
let of_int i = float_of_int i
2018-01-02 22:33:17 +01:00
let of_string s = float_of_string s
2018-01-02 22:02:01 +01:00
2018-01-02 22:33:17 +01:00
let to_int x = int_of_float x
2018-01-02 22:02:01 +01:00
let to_string x =
if x >= 0. then
Printf.sprintf "+%f" x
else
Printf.sprintf "%f" x
2018-03-03 22:13:14 +01:00
let ( + ) a b =
(to_float a) +. (to_float b) |> of_float
let ( - ) a b =
(to_float a) -. (to_float b) |> of_float
let ( * ) a b =
(to_float a) *. b |> of_float
let ( / ) a b =
(to_float a) /. b |> of_float
2018-03-16 00:23:47 +01:00
let pp ppf x =
if x > 0. then
Format.fprintf ppf "@[+%f@]" (to_float x)
else
Format.fprintf ppf "@[%f@]" (to_float x)