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

 

posted @ 2022-06-21 22:05  from-ancient  阅读(1366)  评论(0)    收藏  举报