程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-C語言浮點數“truncation from const double to float”?

c語言-C語言浮點數“truncation from const double to float”?

編輯:編程解疑
C語言浮點數“truncation from 'const double' to 'float'”?
 #include<stdio.h>
int main() 
{
            float a; float b; float c;
            a=4.2; b=3.1; c=1.1;
            if ((a-b)==c) {
                printf("相等 ");
            } else {
                printf("不相等 ");
            }
            printf("%f\n",a);
            printf("%f\n",b);
            printf("%f\n",a-b);
            printf("%f",c);
        }

為什麼輸出結果未“不相等”?

最佳回答:


C或C++ 裡對float 和double進行比較時不能直接==比較,浮點數有精度查,大概是0.00001所以一般是這樣

C 語言內:

            a與零比較是否相等
                            typedef 0.000001  EPS;
                            if ( a > -EPS  && a < EPS )
                                    a == 0;

            a與b 比較是否相等
               typedef 0.000001  EPS;
                            float tmp x = a-b;

                            if ( x > -EPS  && x < EPS )
                                    a == b;

C++內
const float EPS = 0,000001;

                其它與C語言內一樣當然也可以使用C語言方法,但C語言內不支持const

double 一樣

** 純手打**

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved