用C打印一个非常大的整数

nof*_*ofe 1 c

我在一个浮点变量中存储了一个非常大的数字,但是当我打印它时,我想只显示整数部分而小数点后面没有任何内容.

对于int或long范围内的数字,我会进行一次转换,但这对我没有帮助,因为我要打印的数字对于int或long来说太长了.

我看过这个解释:http://www.cprogramming.com/tutorial/printf-format-strings.html但我没有成功解决这个问题.

这是我的代码和我尝试进行转换:

double sum=552074001368;
long long_sum;
long_sum = (long)(sum);      //int casting for double "add" 
if(sum>=0) printf("=\n%ld\n",long_sum);
else printf("=\n%ld\n",-long_sum);
Run Code Online (Sandbox Code Playgroud)

我不想使用特定的精度,printf("%15f")因为这个变量波动,有时非常短,如4位数.

Fre*_*Foo 6

使用精度修改器.0并打印floor数字:

printf("%.0f\n", floor(sum));
Run Code Online (Sandbox Code Playgroud)

(或floorabs,如果你只想要的大小,因为在你的示例代码.)


Jer*_*fin 5

我想你所追求的是%.0f.例如:

#include <stdio.h>

int main(){

    double x = 1234.567;

    printf("%.0f", x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

...打印:

1235
Run Code Online (Sandbox Code Playgroud)