国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

Convert.ToInt32小數(shù)為什么會(huì)異常

2019-10-29 21:31:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
int iPX_QYZJ;
    
  iPX_QYZJ = Convert.ToInt32 (row.Cells[4].Value);
row.Cells[4].Value返回object類型。
當(dāng)row.Cells[4].Value的值包含小數(shù)時(shí),發(fā)送異常。row.Cells[4].Value值為整數(shù)時(shí)一切正常。
開發(fā)環(huán)境:
VS2005 C#, WindowsXPSP3
機(jī)器中同時(shí)裝有VS2003
發(fā)生異常:
未處理 System.FormatException
  Message="輸入字符串的格式不正確。"
  Source="mscorlib"
------回答---------
------其他回答(1分)---------
使用Int32.TryParse()
------其他回答(1分)---------
引用 1 樓 peter200694013 的回復(fù):
使用Int32.TryParse()
然后parse不了
------其他回答(1分)---------
你可以ToDouble,然后強(qiáng)轉(zhuǎn)。
------其他回答(2分)---------
有小數(shù)發(fā)生異常自然是正常的,因?yàn)樗环险麛?shù)的形式嘛。
------其他回答(1分)---------
引用 5 樓 dancingbit 的回復(fù):
有小數(shù)發(fā)生異常自然是正常的,因?yàn)樗环险麛?shù)的形式嘛。
+1
------其他回答(1分)---------
你要它ToInt32,但提供的字符串不符合Int32的形式,為什么不能發(fā)生異常?
不要忘了,計(jì)算機(jī)的聰明來(lái)自于哪里。
------其他回答(2分)---------
異常 條件  
FormatException value 不是由一個(gè)可選符號(hào)后跟數(shù)字序列(0 到 9)組成的。  
OverflowException value 表示小于 MinValue 或大于 MaxValue 的數(shù)字。  
 
看msdn
toDouble
------其他回答(1分)---------
難道你認(rèn)為"0.1"是整數(shù)嗎?
------其他回答(2分)---------
翻看.net源碼就可以找到你想要的東西。
------其他回答(2分)---------
引用 11 樓 hyx972 的回復(fù):
引用 9 樓 mohugomohu 的回復(fù):
難道你認(rèn)為"0.1"是整數(shù)嗎?
我的理解,不知道對(duì)不對(duì):
Convert.ToInt32 強(qiáng)制轉(zhuǎn)換,無(wú)論源數(shù)據(jù)是否是整形,只要他是數(shù)值就可以了。
明顯不對(duì),ToInt32要求被轉(zhuǎn)換的字符串要符合整數(shù)的形式的。
------其他回答(1分)---------
double類型的不能轉(zhuǎn)換為int類型的
------其他回答(1分)---------
引用 13 樓 dancingbit 的回復(fù):
引用 11 樓 hyx972 的回復(fù):
引用 9 樓 mohugomohu 的回復(fù):
難道你認(rèn)為"0.1"是整數(shù)嗎?
我的理解,不知道對(duì)不對(duì):
Convert.ToInt32 強(qiáng)制轉(zhuǎn)換,無(wú)論源數(shù)據(jù)是否是整形,只要他是數(shù)值就可以了。
明顯不對(duì),ToInt32要求被轉(zhuǎn)換的字符串要符合整數(shù)的形式的。
+1
------其他回答(1分)---------
引用 15 樓 peter200694013 的回復(fù):
引用 13 樓 dancingbit 的回復(fù):
引用 11 樓 hyx972 的回復(fù):
引用 9 樓 mohugomohu 的回復(fù):
難道你認(rèn)為"0.1"是整數(shù)嗎?
我的理解,不知道對(duì)不對(duì):
Convert.ToInt32 強(qiáng)制轉(zhuǎn)換,無(wú)論源數(shù)據(jù)是否是整形,只要他是數(shù)值就可以了。
明顯不對(duì),ToInt32要求被轉(zhuǎn)換的字符串要符合整數(shù)的形式的。
+1
你的理解,頂個(gè)屁用.人家MS就是這樣規(guī)定的.
------其他回答(1分)---------
改個(gè)轉(zhuǎn)換的方式吧
------其他回答(1分)---------
引用 4 樓 hyx972 的回復(fù):
我想知道為什么 Convert.ToInt32("0.1")會(huì)產(chǎn)生異常?
難道.Net框架下提供那么多的重載的方法都是忽悠人的?
你這個(gè)參數(shù)是字符串吧?
------其他回答(1分)---------
是字符串的話就會(huì)報(bào)錯(cuò),
------其他回答(1分)---------
.....
有小數(shù)的東西。。你非得拿整型轉(zhuǎn)。。
------其他回答(1分)---------
用(int)轉(zhuǎn)換吧
------其他回答(1分)---------
csdn神奇的人真多
------其他回答(1分)---------
是啊 0.1明顯不是整形啊
------其他回答(1分)---------
有小數(shù)當(dāng)然不能用int類型了 用double
------其他回答(2分)---------
先轉(zhuǎn)decimal,然后Math.Floor()
------其他回答(1分)---------
小數(shù)的"."
不符合整數(shù)格式
int a = Convert.ToDouble("0.1");
這樣就好了
------其他回答(2分)---------
LZ先把字符串轉(zhuǎn)換為Double類型再轉(zhuǎn)為Int32就沒問題了,原因是如果像LZ那樣轉(zhuǎn)的話,會(huì)是被認(rèn)為由字符串轉(zhuǎn)為整形,當(dāng)有小數(shù)點(diǎn)時(shí)就會(huì)出錯(cuò)了,如果先轉(zhuǎn)換為Double類型的話就會(huì)以數(shù)值類型來(lái)處理。如:Int32 i = Convert.ToInt32(Convert.ToDouble("1.1"));這樣就可以通過(guò)了
------其他回答(1分)---------
這個(gè)不神奇,一個(gè)是decimal的轉(zhuǎn)換為int,這個(gè)可以的;
下一個(gè)是string型的轉(zhuǎn)換為int,這樣string的內(nèi)容必須為符合整型的格式。
這兩個(gè)語(yǔ)句不等價(jià)的。
引用 10 樓 hyx972 的回復(fù):
decimal dPX_QYZJ;
int iVal;
dPX_QYZJ = 1.12;
iVal = Convert.ToInt32 ( dPX_QYZJ ); //OK
iVal = Convert.ToInt32 ( dPX_QYZJ.ToString() ); //Error
真是神奇的VS2005 C# 
本段代碼在VS2005 VB 中一切正常!
……
------其他回答(1分)---------
如果不是整數(shù)就會(huì)報(bào)一場(chǎng)
------其他回答(3分)---------
不要把VB中的用在c#不然會(huì)有很多的錯(cuò)誤。。。。。
跟VB差別 蠻大的
------其他回答(1分)---------
強(qiáng)轉(zhuǎn) (int)row.Cells[4].Value
------其他回答(1分)---------
row.Cells[4].Value 可能是字符串(里面含有空格字符串)
你仔細(xì)看一下
------其他回答(1分)---------
有點(diǎn)偏執(zhí)了....
------其他回答(1分)---------
kankankan
------其他回答(1分)---------
確實(shí),哪來(lái)的那么多為什么
------回答---------

------其他回答(1分)---------

使用Int32.TryParse()
------其他回答(1分)---------
引用 1 樓 peter200694013 的回復(fù):
使用Int32.TryParse()

然后parse不了
------其他回答(1分)---------

你可以ToDouble,然后強(qiáng)轉(zhuǎn)。
------其他回答(2分)---------

有小數(shù)發(fā)生異常自然是正常的,因?yàn)樗环险麛?shù)的形式嘛。
------其他回答(1分)---------
引用 5 樓 dancingbit 的回復(fù):
有小數(shù)發(fā)生異常自然是正常的,因?yàn)樗环险麛?shù)的形式嘛。

+1
------其他回答(1分)---------

你要它ToInt32,但提供的字符串不符合Int32的形式,為什么不能發(fā)生異常?
  不要忘了,計(jì)算機(jī)的聰明來(lái)自于哪里。
------其他回答(2分)---------

異常 條件  
FormatException value 不是由一個(gè)可選符號(hào)后跟數(shù)字序列(0 到 9)組成的。  
OverflowException value 表示小于 MinValue 或大于 MaxValue 的數(shù)字。  
 
看msdn
toDouble
------其他回答(1分)---------

難道你認(rèn)為"0.1"是整數(shù)嗎?
------其他回答(2分)---------

翻看.net源碼就可以找到你想要的東西。
------其他回答(2分)---------
引用 11 樓 hyx972 的回復(fù):
引用 9 樓 mohugomohu 的回復(fù):
難道你認(rèn)為"0.1"是整數(shù)嗎?
我的理解,不知道對(duì)不對(duì):
Convert.ToInt32 強(qiáng)制轉(zhuǎn)換,無(wú)論源數(shù)據(jù)是否是整形,只要他是數(shù)值就可以了。

明顯不對(duì),ToInt32要求被轉(zhuǎn)換的字符串要符合整數(shù)的形式的。
------其他回答(1分)---------

double類型的不能轉(zhuǎn)換為int類型的
------其他回答(1分)---------
引用 13 樓 dancingbit 的回復(fù):
引用 11 樓 hyx972 的回復(fù):
引用 9 樓 mohugomohu 的回復(fù):
難道你認(rèn)為"0.1"是整數(shù)嗎?
我的理解,不知道對(duì)不對(duì):
Convert.ToInt32 強(qiáng)制轉(zhuǎn)換,無(wú)論源數(shù)據(jù)是否是整形,只要他是數(shù)值就可以了。
明顯不對(duì),ToInt32要求被轉(zhuǎn)換的字符串要符合整數(shù)的形式的。

+1
------其他回答(1分)---------
引用 15 樓 peter200694013 的回復(fù):
引用 13 樓 dancingbit 的回復(fù):
引用 11 樓 hyx972 的回復(fù):
引用 9 樓 mohugomohu 的回復(fù):
難道你認(rèn)為"0.1"是整數(shù)嗎?
我的理解,不知道對(duì)不對(duì):
Convert.ToInt32 強(qiáng)制轉(zhuǎn)換,無(wú)論源數(shù)據(jù)是否是整形,只要他是數(shù)值就可以了。
明顯不對(duì),ToInt32要求被轉(zhuǎn)換的字符串要符合整數(shù)的形式的。
+1

你的理解,頂個(gè)屁用.人家MS就是這樣規(guī)定的.
------其他回答(1分)---------

改個(gè)轉(zhuǎn)換的方式吧
------其他回答(1分)---------
引用 4 樓 hyx972 的回復(fù):
我想知道為什么 Convert.ToInt32("0.1")會(huì)產(chǎn)生異常?
難道.Net框架下提供那么多的重載的方法都是忽悠人的?

你這個(gè)參數(shù)是字符串吧?
------其他回答(1分)---------

是字符串的話就會(huì)報(bào)錯(cuò),
------其他回答(1分)---------

.....
有小數(shù)的東西。。你非得拿整型轉(zhuǎn)。。
------其他回答(1分)---------

用(int)轉(zhuǎn)換吧
------其他回答(1分)---------

csdn神奇的人真多
------其他回答(1分)---------

是啊 0.1明顯不是整形啊
------其他回答(1分)---------

有小數(shù)當(dāng)然不能用int類型了 用double
------其他回答(2分)---------

先轉(zhuǎn)decimal,然后Math.Floor()
------其他回答(1分)---------

小數(shù)的"."
不符合整數(shù)格式
int a = Convert.ToDouble("0.1");
這樣就好了
------其他回答(2分)---------

LZ先把字符串轉(zhuǎn)換為Double類型再轉(zhuǎn)為Int32就沒問題了,原因是如果像LZ那樣轉(zhuǎn)的話,會(huì)是被認(rèn)為由字符串轉(zhuǎn)為整形,當(dāng)有小數(shù)點(diǎn)時(shí)就會(huì)出錯(cuò)了,如果先轉(zhuǎn)換為Double類型的話就會(huì)以數(shù)值類型來(lái)處理。如:Int32 i = Convert.ToInt32(Convert.ToDouble("1.1"));這樣就可以通過(guò)了
------其他回答(1分)---------

這個(gè)不神奇,一個(gè)是decimal的轉(zhuǎn)換為int,這個(gè)可以的;
下一個(gè)是string型的轉(zhuǎn)換為int,這樣string的內(nèi)容必須為符合整型的格式。
這兩個(gè)語(yǔ)句不等價(jià)的。
引用 10 樓 hyx972 的回復(fù):
decimal dPX_QYZJ;
int iVal;
dPX_QYZJ = 1.12;
iVal = Convert.ToInt32 ( dPX_QYZJ ); //OK
iVal = Convert.ToInt32 ( dPX_QYZJ.ToString() ); //Error
真是神奇的VS2005 C# 
本段代碼在VS2005 VB 中一切正常!
……
------其他回答(1分)---------

如果不是整數(shù)就會(huì)報(bào)一場(chǎng)
------其他回答(3分)---------

不要把VB中的用在c#不然會(huì)有很多的錯(cuò)誤。。。。。
跟VB差別 蠻大的
------其他回答(1分)---------

強(qiáng)轉(zhuǎn) (int)row.Cells[4].Value
------其他回答(1分)---------

row.Cells[4].Value 可能是字符串(里面含有空格字符串)
你仔細(xì)看一下
------其他回答(1分)---------

有點(diǎn)偏執(zhí)了....
------其他回答(1分)---------

kankankan
------其他回答(1分)---------

確實(shí),哪來(lái)的那么多為什么
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 青龙| 从化市| 嘉峪关市| 达州市| 炎陵县| 博乐市| 竹北市| 海丰县| 南川市| 宿州市| 汉寿县| 大关县| 长武县| 台中市| 连州市| 新野县| 巴东县| 天长市| 富川| 贡觉县| 牡丹江市| 内江市| 庄浪县| 如皋市| 阳春市| 屏山县| 昆明市| 高碑店市| 安阳市| 尼勒克县| 桦南县| 沈阳市| 突泉县| 兴和县| 兴义市| 永清县| 宁化县| 韶山市| 紫金县| 宁津县| 永川市|