C# double 精度丟失問題


.Net5

什么是精度丟失

當我們運行一下代碼

            double s = 0.18 * 10;

            Console.WriteLine( s.ToString());

            double p= 4 / 2.0;

            Console.WriteLine( p);

會的到 如下結果

0.18 * 10 不等於18
這就是精度丟失

精度丟失的原因

系統是基於二進制的

double 64位 雙精度 有效數字為53位 而 double--0.18 轉為二進制 位數多余53 則多出的位數被丟棄 便出現了精度丟失

【注】 framework452 有優化 0.18*100=18


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM