标签: c++ double
我在c ++程序中读取双数据时遇到了奇怪的问题,为什么c ++会添加9,我怎么能让他不去?
当我给他8.62400e + 02时,他将其保存为862.39999999999997726而不是862.4
感谢您的帮助!
答案 0 :(得分:0)
您根本无法在float s或double s中完全表达所有值,这与整数的差异。如果您想在打印值时删除9,请在printf()格式字符串中使用适当的精度说明符,这很可能会成功,但在内部,它永远不会完全= 862.4。
float
double
printf()