File tree 4 files changed +22
-4
lines changed
4 files changed +22
-4
lines changed Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ external toInt: float -> int = "%intoffloat"
32
32
33
33
external fromInt : int -> float = " %identity"
34
34
35
- external fromString : string -> float = " parseFloat " [@@ bs.val]
35
+ external fromString : string -> float = " Number " [@@ bs.val]
36
36
37
37
let fromString i =
38
38
match (fromString i) with
Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ external toFloat: int -> float = "%identity"
32
32
33
33
external fromFloat : float -> int = " %intoffloat"
34
34
35
- external fromString : string -> (_ [@ bs.as 10 ]) -> int = " parseInt " [@@ bs.val]
35
+ external fromString : string -> (_ [@ bs.as 10 ]) -> int = " Math.trunc " [@@ bs.val]
36
36
37
37
let fromString i =
38
38
match fromString i with
Original file line number Diff line number Diff line change @@ -29,7 +29,16 @@ let () =
29
29
eq __LOC__ (F. fromString " -1.0" ) (Some (- 1.0 ));
30
30
eq __LOC__ (F. fromString " -1.5" ) (Some (- 1.5 ));
31
31
eq __LOC__ (F. fromString " -1.7" ) (Some (- 1.7 ));
32
- eq __LOC__ (F. fromString " not a float" ) None
32
+ eq __LOC__ (F. fromString " 17e-1" ) (Some (1.7 ));
33
+ eq __LOC__ (F. fromString " -17e-1" ) (Some (- 1.7 ));
34
+ eq __LOC__ (F. fromString " -17e-1 " ) (Some (- 1.7 ));
35
+ eq __LOC__ (F. fromString " 0x11" ) (Some (17. ));
36
+ eq __LOC__ (F. fromString " 0b11" ) (Some (3. ));
37
+ eq __LOC__ (F. fromString " 0o11" ) (Some (9. ));
38
+ eq __LOC__ (F. fromString " " ) (Some (0. ));
39
+ eq __LOC__ (F. fromString " not a float" ) None ;
40
+ eq __LOC__ (F. fromString " 100.0abcdef" ) None ;
41
+ eq __LOC__ (F. fromString " 123_456.7" ) None
33
42
34
43
let () =
35
44
eq __LOC__ (F. toString 1.0 ) " 1" ;
Original file line number Diff line number Diff line change @@ -29,7 +29,16 @@ let () =
29
29
eq __LOC__ (I. fromString " -1.0" ) (Some (- 1 ));
30
30
eq __LOC__ (I. fromString " -1.5" ) (Some (- 1 ));
31
31
eq __LOC__ (I. fromString " -1.7" ) (Some (- 1 ));
32
- eq __LOC__ (I. fromString " not an int" ) None
32
+ eq __LOC__ (I. fromString " 17e-1" ) (Some (1 ));
33
+ eq __LOC__ (I. fromString " -17e-1" ) (Some (- 1 ));
34
+ eq __LOC__ (I. fromString " -17e-1 " ) (Some (- 1 ));
35
+ eq __LOC__ (I. fromString " 0x11" ) (Some (17 ));
36
+ eq __LOC__ (I. fromString " 0b11" ) (Some (3 ));
37
+ eq __LOC__ (I. fromString " 0o11" ) (Some (9 ));
38
+ eq __LOC__ (I. fromString " " ) (Some (0 ));
39
+ eq __LOC__ (I. fromString " not an int" ) None ;
40
+ eq __LOC__ (I. fromString " 100abcdef" ) None ;
41
+ eq __LOC__ (I. fromString " 123_456" ) None
33
42
34
43
let () =
35
44
eq __LOC__ (I. toString 1 ) " 1" ;
You can’t perform that action at this time.
0 commit comments