我知道这很愚蠢,但我在编程世界中是一个安静的菜鸟,这是我的代码。
这个很完美:
#include <stdio.h>
int main() {
float x = 3153600000 ;
printf("%f", x);
return 0;
}
但是这个有一个问题:
#include <stdio.h>
int main() {
float x = 60 * 60 * 24 * 365 * 100 ;
printf("%f", x);
return 0;
}
所以 60 * 60 * 24 * 365 * 100 是 3153600000 对吗???如果是那么为什么会产生不同的结果???结果,我在第二个打印出“-1141367296.000000”的溢出。谁能告诉我为什么?
最佳答案
您将整数相乘,然后将结果放入 float 中。到那时,它已经溢出了。
试试 float x = 60.0f * 60.0f * 24.0f * 365.0f * 100.0f;
。您应该会得到想要的结果。
关于c++ - 谁能告诉我为什么 float 不能容纳 3153600000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5811659/