double a = 1E100
printf("%f", a);
它似乎打印了一个不同的值,而不是 1 后跟 100 个零:
10000000000000000159028911097599180468360808563945281389781327557747838772170381060813469985856815104
这里可能存在什么问题?
最佳答案
double
类型,假设它使用 IEEE 754 double 浮点表示,仅保存大约 16 位十进制数字的精度。
因此,其后的任何十进制数字都只是一个近似值,即它可以表示的最接近1E100
的值。
关于c - 为什么 %f 对于 print 语句中的大双数工作不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59842746/