打印没有小数位的双精度数

时间:2011-07-26 07:17:31

标签: c

我有一个数字存储为double并且想要打印它而没有小数位。因此,如果我有双值919545634521.000000,则始终会打印添加小数位的值。如何在没有它的情况下进行打印,如下所示:919545634521

#include<stdlib.h>

int main()
{
    double number = 9220343120;
    printf("%??\n", number);
}

6 个答案:

答案 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或使用整数

Lookup format specs for printf

答案 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