OCaml中的C99样式十六进制浮点常量

时间:2015-06-18 14:37:12

标签: floating-point ocaml floating-point-conversion

在OCaml中,我如何用十六进制解析C99样式的浮点常量(作为文字或内部字符串),例如 set.seed(24) dataFrame <- data.frame(run=rep(letters[1:3], 4), value=c(NA,rnorm(11)), value2=c(runif(11), NA))

似乎它们不是有效的文字:

0x1.b000000000000p4

并且似乎没有# let c = 0x1.b000000000000p4;; Characters 12-27: let c = 0x1.b000000000000p4;; ^^^^^^^^^^^^^^^ Error: Unbound record field b000000000000p4 转换器来解析它们(例如,与Scanf的C99 %a转换器相对应。

1 个答案:

答案 0 :(得分:6)

float_of_string应该能够解析它们:

# float_of_string "0x1.199999999999Ap1";;
- : float = 2.2

然而,作为Alain Frisch noted关于OCaml的错误跟踪器,支持实际上取决于底层的libc,目前无法在MSVC端口上运行。