關於初學者.NET編程中遇到的問題(一)

來源:互聯網
上載者:User

這是我在微軟中文技術論壇上回答的一些問題,有些很有代表性,現在拿出來分享給大家:

大家看看這段代碼:

            double temp1,temp2,temp3,temp4 ;
            temp1 = 7.1;
            temp2 = 0.4;
            temp3 = 5.7;
            temp4 = 1;

            Response.Write( temp1.Equals(temp2 + temp3 + temp4));

輸出結果是false,實際上temp2+temp3+temp4的值是7.1000000000000005

問題出在temp2+temp3上,也就是0.4+5.7的時候,我測試結果是6.1000000000000005

這是浮點數內部表示的精度問題,一般這樣比較

 

Response.Write(temp1.ToString().Equals((temp2 + temp3 + temp4).ToString()));

 

或者採取轉換成整數等方法進行運算、比較

 

比較精度應小心使用 Equals 方法,因為兩個顯然相等的值可能因兩個值的精度不同而不相等

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.