我有一个数字存储为double
并且想要打印它而没有小数位。因此,如果我有双值919545634521.000000
,则始终会打印添加小数位的值。如何在没有它的情况下进行打印,如下所示:919545634521
?
#include<stdlib.h>
int main()
{
double number = 9220343120;
printf("%??\n", number);
}
答案 0 :(得分:11)
试
printf("%.0lf\n",phoneNum);
你可能也喜欢
long long phoneNum;
phoneNum = strtoll(buffer,NULL,0);
printf("%lld\n",phoneNum);
代替。但是,根据系统的不同,您可能需要转换其他功能(对于Windows,我认为它是_strtoui64
。)
答案 1 :(得分:4)
好吧,不要将电话号码存储为浮点数(一次错误移动,最终你的电话号码会以舍入为止)。
将其存储为整数或字符串。
答案 2 :(得分:2)
使用%0.0lf或使用整数
答案 3 :(得分:1)
printf ("%.0f\n", phoneNum);
应该有用。
答案 4 :(得分:0)
您正在寻找精确度 - 格式说明符%.0f
应该做您想做的事。
答案 5 :(得分:-1)
不确定其他编译器支持,但GCC支持&#39;&#39;格式说明符,它将使用完全精度所需的最小空间打印double。例如:
double d1 = 10.000;
double d2 = 25.03;
printf( "d1: %g\nd2: %g\n", d1, d2 );
将导致:
d1: 10
d2: 25.03