在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
转换器相对应。
答案 0 :(得分:6)
float_of_string
应该能够解析它们:
# float_of_string "0x1.199999999999Ap1";;
- : float = 2.2
然而,作为Alain Frisch noted关于OCaml的错误跟踪器,支持实际上取决于底层的libc,目前无法在MSVC端口上运行。