問題描述:double型別向int型別的乙個轉化
詳細描述:課上,我們的web老師,利用c#重新溫故了我們初學c語言時的乙個小程式——給定成績,有程式判定等級。學過c語言的童鞋想必都知道這個switch...case..語句。問題不是出現在這兒,而是,在判斷之前,我們需要將成績mod 10 ,也就是我們只想根據百分制成績的 「十位」 數字來判斷成績的等級(優秀、良好、中等、及格)
出現問題的**如下:
protected void btngrade_click(object sender, eventargs e)
}結果如下:
問題的原因:int num = convert.toint16(dgrade);
convert.toint16(),這個函式的功能,是將double型別的轉化為int型別的,這一點沒有錯誤,錯就錯在,這種轉化方式利用了 「四捨五入」 的思想。
接下來就是就題目來解決問題了。
方法(1):
問題出現在 「四捨五入」,特例:59.5,轉化以後60.在轉化前,我們需要將 59.5-0.5 即可解決目前所有的問題。主要**如下:
個人感覺這種方法運用比較狹窄,只是就題目而言,如果 童鞋們 發現這個有問題,還請多多指教。
方法(2):
既然我們的目的是只得到double型別的整數,那麼有沒有函式可以取出double型別的整數部分呢?答案是肯定的。(只有你想不到的,木有**做不到的)
方法(3):
最後的方法,是老師想起來的——強制型別轉換
總結:小問題往往折射出大道理,所以童鞋們,關注細節問題,學會總結。還有一句叫做什麼「問題只有乙個,解決問題的方法可以有很多」。同時希望路過的你發現有什麼錯誤,請委婉的提出來,謝謝。
C指標型別轉換問題
先看下面的 includeint main 針對x86的處理器來說,其結果為513 原因程式首先宣告了乙個int變數,在我的電腦中,此int占用4位元組。然後宣告了乙個x指標,同樣,在我的電腦中它占用8位元組。然後將a的記憶體位址賦值給x指標,注意這裡用到了型別轉換 x char a。如果不使用型別...
mysql型別轉換c 型別轉換 C 型別轉換
一 簡介 型別轉換 把資料從一種型別轉換另一種型別 我們要求等號兩邊參與運算子必須型別一致,如果不一致,滿足下列條件會發生自動型別轉換或者隱式型別轉換。1.兩種型別相容 例如 int和double 相容 都是數字型別 2.目標型別大於源型別 double int 顯示型別轉換 1.兩種型別相相容 i...
c 隱式型別轉換及c風格型別轉換的問題
上次的多執行緒系列因為某些原因暫時停了,後續會根據實際遇到的問題做一些補充。寫部落格是為了記錄我遇到的問題以及解決,便於自我總結,也幫助遇到這些問題的人。言歸正傳,本文介紹了c 以及c風格的強制型別轉換的一些注意點。問題描述 我在做報文解析的時候遇到這個問題 float x 32.128f floa...