關於C#中conver.int32()與int計算後省略值

來源:互聯網
上載者:User

4.7號學習的時候發現一個有意思的事情,如果將一個浮點型用convert轉換為int32的話結果會很精彩:

double b = convert.ToDouble(console.readline());            //由於直接在日誌手打,拼字錯誤的話,純屬我菜
int a = convert.ToInt32(b);
console.writeline("{0}  =>  {1}",b,a);

運行後會發現

1.5 =>  2                      
2.5 =>  2   
3.5 =>  4
4.5 =>  4

這樣的現象,通過查MSDN,有這樣一句話:

Convert.ToInt32 將舍入到最接近的 32 位有符號整數。如果值為中間兩個的整體數字則返回偶數 ;這就是 4.5 轉換為 4,而 5.5 轉換為 6。而在另一方面 (int) 只是截斷小數部分。

 

於是有下面的實驗:

int a = convert.Int32(console.readline());
console.writeline("{0}/2 = {1}",a,a/2);
結果猜猜怎樣?

3/2 = 1
4/2 = 2    //當然=_=
5/2 = 2

可見,a/2的運算結果應該也是截斷了小數部分了,所以才有 3/2 = 1 (1.5)  而且 5/2 =2 (2.5) 
要是用Convert.ToInt32來處理的話3/2=1.5 = 2了吧......

我承認我是有點無聊...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.