.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