第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

浮點數(shù)轉(zhuǎn)換成Int值的問題。

浮點數(shù)轉(zhuǎn)換成Int值的問題。

動漫人物 2018-11-01 05:27:02
double a = 1.019;int a =(int)( a * 1000);int b = Convert.ToInt32(a*1000);----------------------------------------------------------------a = 1018;b = 1019;請問為什么會有區(qū)別。
查看完整描述

2 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊

補充下:

1 (int)是一種類型轉(zhuǎn)換;當(dāng)我們從int類型到long,float,double,decimal類型,可以使用隱式轉(zhuǎn)換,但是當(dāng)我們從long類型到int類型就需要使用顯式轉(zhuǎn)換,否則會產(chǎn)生編譯錯誤。

 2 int.Parse()是一種內(nèi)容轉(zhuǎn)換;表示將數(shù)字內(nèi)容的字符串轉(zhuǎn)為int類型。   如果字符串為空,則拋出ArgumentNullException異常;   如果字符串內(nèi)容不是數(shù)字,則拋出FormatException異常;   如果字符串內(nèi)容所表示數(shù)字超出int類型可表示的范圍,則拋出OverflowException異常;

 3 int.TryParse 與 int.Parse 又較為類似,但它不會產(chǎn)生異常,轉(zhuǎn)換成功返回 true,轉(zhuǎn)換失敗返回 false。   最后一個參數(shù)為輸出值,如果轉(zhuǎn)換失敗,輸出值為 0 

4 Convert.ToInt32()是一種內(nèi)容轉(zhuǎn)換;但它不限于將字符串轉(zhuǎn)為int類型,還可以是其它類型的參數(shù); 比較:   Convert.ToInt32 參數(shù)為 null 時,返回 0; int.Parse 參數(shù)為 null 時,拋出異常。    Convert.ToInt32 參數(shù)為 "" 時,拋出異常;  int.Parse 參數(shù)為 "" 時,拋出異常。   Convert.ToInt32 可以轉(zhuǎn)換的類型較多; int.Parse 只能轉(zhuǎn)換數(shù)字類型的字符串。


測試代碼如下:

#region double
            i
            double a = 1.019;
            int b = (int)(a * testvar);
            int c = Convert.ToInt32(a * testvar);
            int d = int.Parse((a * testvar).ToString());
            int f = 0;//也可以不賦值,出錯時為默認(rèn)為0          
           bool result = int.TryParse((a * testvar).ToString(), out f);
            Console.WriteLine(b.ToString());
            Console.WriteLine(c.ToString());
            Console.WriteLine(d.ToString());
            Console.WriteLine(f.ToString());
            Console.ReadKey();
            #endregion


當(dāng)testvar為1000時,運行結(jié)果:

 

1018
1019
1019
1019


當(dāng)testvar為100時,運行結(jié)果:

int.Parse出錯:輸入字符串的格式不正確。

修改代碼為:

 

#region double
           
            double a = 1.019;
            int b = (int)(a * testvar);
            int c = Convert.ToInt32(a * testvar);
            int f = 0;//也可以不賦值,出錯時為默認(rèn)為0
            bool result = int.TryParse((a * testvar).ToString(), out f);
            Console.WriteLine(b.ToString());
            Console.WriteLine(c.ToString());
            Console.WriteLine(f.ToString());
            Console.ReadKey();
            #endregion


運行結(jié)果為:

 

101
102
0

推薦使用int.TryParse


查看完整回答
反對 回復(fù) 2018-11-01
  • 2 回答
  • 0 關(guān)注
  • 1711 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號