C# double類型變量比較分析
double類型變量
怎么比較大小
通過使用double.equals(doubale a,double b)進行比較時,發(fā)現(xiàn)兩個數值不是相等。

圖中sum為從0加0.1累計到1,按數學計算應該為1.0,但是在計算機中計算為0.9999999999,通過double.equals或者直接用==進行等量判斷時,發(fā)現(xiàn)不相同。
這說明double類型不能直接進行等量判斷,那么怎么進行比較呢?
類型轉換為decimal
將float模型轉換成decimal可以直接進行判斷了.

可以看出兩個值都是1,這樣就可以直接進行比較了。
綜上所述,在進行數值比較時,如果使用double類型時,不能直接進行等量判斷,需要通過兩值相減小于某個定義的值如0.0000001來判斷兩值相等或者轉換為其他類型進行判斷。
補充知識:c#中Double類型的使用場景
【Double】
double類型在程序中定義變量會經常使用,如果使用不當,會導致實際值精度問題出現(xiàn),例子如下:
Double d1 = 66.09; Double d2 = 89.943; Double d3 = 156.033; d2 = d1 + d2; //兩個double 類型相加的結果是:156.03300000000002 Console.WriteLine(d2.CompareTo(d3)); //導致最終的結果是d2的值大于d3的值,但是實際看到的值是相等的 Console.ReadLine();
【解決方案】
使用Decimal類型定義后保證小數的精確度,兩個相同類型的decimal相加后可以確保程序不會自動添加進度到結果值中,這樣就能夠避免出現(xiàn)以上情況發(fā)生
Decimal d1 = 66.09M; Decimal d2 = 89.943M; Decimal d3 = 156.033M; d2 = d1 + d2; Console.WriteLine(d2.CompareTo(d3)); Console.ReadLine();
以上這篇C# double類型變量比較分析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
DevExpress之ChartControl實現(xiàn)餅狀圖百分比演示實例
這篇文章主要介紹了DevExpress之ChartControl實現(xiàn)餅狀圖百分比演示的方法,實例講述了窗體與圖形繪制函數的用法,需要的朋友可以參考下2014-10-10
windows下C#定時管理器框架Task.MainForm詳解
這篇文章主要為大家詳細介紹了windows下C#定時管理器框架Task.MainForm的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
c#動態(tài)編譯執(zhí)行對象方法示例 運用映射機制創(chuàng)建對象
本示例核心技術是運用.NET動態(tài)編譯技術+.NET映射技術,把一個代碼塊中的代碼,動態(tài)編譯成程序集后,在運用映射機制,創(chuàng)建對象示例,調用對象方法2014-01-01

