我在一个浮点变量中存储了一个非常大的数字,但是当我打印它时,我想只显示整数部分而小数点后面没有任何内容.
对于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位数.
使用精度修改器.0并打印floor数字:
printf("%.0f\n", floor(sum));
Run Code Online (Sandbox Code Playgroud)
(或floor的abs,如果你只想要的大小,因为在你的示例代码.)
我想你所追求的是%.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)