1、判断浮点数是否为整数浮点数(即小数点后是否全零)
问题提出:对于双精度double类型的浮点数,如何判断是否为“整数”?
例子:
double a = 1.23 if ((long long)a - a == 0) { long long ans = (long long)mid; printf("%ld",ans); }else printf("%.1lf",a); //输出 1.2
最简单的方法是用“差值法”,利用强制类型转换时截断小数部分,此时做差判断是否为零,为零则说明a为整数浮点数,否则不是;差值法严谨做法为将取得的差值与某很小的数进行区间比较。
以上例子,若 a = 1.00,则输出1
问题来源:http://118.190.20.162/view.page?gpid=T89

浙公网安备 33010602011771号