我正在处理一个二进制文件,并尝试使用 write/readinto 和使用 ctypes - C 兼容的数据类型(因为这个文件也使用另一个 C 程序)来写入/读取这个文件的字节块。例如,写作:
num = 1.221
my_file_in = open('values.file', "wb")
value = c_float(num) # writing 1.22099999... this a known problem
my_file_in.write(value)
.....
和阅读:
num = 1.221
chunk = c_float()
my_file.readinto(chunk)
num
我想比较 num 和我从文件中读取的内容我知道 chunk.value 是 1.22099999 ... 解决在 python 程序中读取的数字和浮点数作为变量的比较值问题的最佳方法是什么?Сomparison 使用减法和 epsilon 还是其他方式?
math.fabs(chunk.value - num) <= epsilon
可能我可以在文件中写入 1.221 并且将来在阅读后比较没有问题?