#include <stdio.h>
int main()
{
printf("Enter the number:");
double num;
scanf("%lf",&num);
printf("%lf\n",num);
}
输入:22222222222222222
输出:22222222222222224.000000
为什么它给出的输出不像给定的那样。
答案 0 :(得分:0)
通常在x86 extended precision format中实现长双精度。其中的小数部分具有63位,并且大约个有效数字。您的电话号码长17位,发生的情况是该电话号码太大,无法精确存储在63位可用地址中。
如果始终是整数(无小数部分),请考虑使用“ long long”表示此数字。