我想得到integer part
。double
但是这种方式对我不起作用:
double param, fractpart, intpart;
param = 3.14159265;
fractpart = modf (param , &intpart);
printf ("%f = %f + %f \n", param, intpart, fractpart);
这是由于事实,double integer
可能有e-notation
。例如,3.41e10
是正确的双数。
我的测试用例是:
- 双 -> 长长
- 234343.0 -> 234343
- 3.41e10 -> 34100000000
- 19.999999999 -> 19
- -10.1 -> -10
- -0.0000001 -> 0
有什么漂亮的方法可以完成我的任务吗?