用户输入如下的double值:2423242.6789。我该怎么办才能扫描2423242?
答案 0 :(得分:1)
假设为正数,请使用floor()
#include <math.h>
double x;
scanf("%lf", &x);
x = floor(x);
// or
x = x < 0.0 ? ceil(x) : floor(x); // to cope with + and - doubles
答案 1 :(得分:0)
一种方法是使用整数说明符,例如
unsigned long long x;
if ( 1 != scanf( "%llu", &x ) )
// error handling...
但是,如果输入不适合x
,则会导致未定义的行为。
更可靠的方法是将字符读入缓冲区(例如通过fgets
),然后使用strtoul
转换为整数。