是否可以在文本文件中以JSON格式(字符串,对象)存储十进制值,然后将其作为十进制检索而无需进行任何类型转换/解析等?
例如,文件中也可能存储了双精度数,这些不应该被解析为小数。
该文件不包含确定变量类型的其他信息:
" num1":4,
" num2":5.4,(为双)
" num3":563.2334(十进制)
答案 0 :(得分:6)
是的,可以通过二进制编写器:
library(dplyr)
data %>% summarise_all(funs(min, max, mean))
通过这种方式,您将能够避免解析其文本表示并加载到内存中:
using(var bw = new BinaryWriter(File.OpenWrite("myFile.txt")))
{
bw.Write(1234.01m); //there is actualy 16 bytes written to file. Double is 8 bytes long.
bw.Write((double)5);
}
您不需要任何其他数据。十进制和双精度在内存中有不同的大小:
因此,如果你想将你的值存储在JSON中那么糟糕,以便能够快速提取它 - >不要这样做。它可能不值得,这就是原因:
JSON本身是可解析的格式,即使将其存储在字节数组中,也会解析/转换它。如果您更喜欢速度而不是可读性 - 请使用其他序列化框架。例如, protobuf 。