看了許多文章,很多人使用Convert.ToInt32來強制轉換,但發現當字串值以小數,科學計數法表示時候無法轉換。如果在ToInt32之前先將字串轉換為Detimal就不會有這種情況。
public static int Do(string value)<br /> {<br /> if (string.IsNullOrEmpty(value)) return 0;</p><p> decimal result = 0;<br /> decimal.TryParse(value, out result);<br /> return System.Convert.ToInt32(result);<br /> }
我的轉換類全部代碼
namespace CS.Convert<br />{<br /> public class toInt<br /> {<br /> public static int Do(string value)<br /> {<br /> if (string.IsNullOrEmpty(value)) return 0;</p><p> decimal result = 0;<br /> decimal.TryParse(value, out result);<br /> return System.Convert.ToInt32(result);<br /> }</p><p> public static int Do(decimal value)<br /> {<br /> return System.Convert.ToInt32(value);<br /> }</p><p> public static int Do(float value)<br /> {<br /> return System.Convert.ToInt32(value);<br /> }</p><p> public static int Do(double value)<br /> {<br /> return System.Convert.ToInt32(value);<br /> }</p><p> public static int Do(int value)<br /> {<br /> return value;<br /> }</p><p> public static int Do(object value)<br /> {<br /> if (null == value || string.IsNullOrEmpty(value.ToString())) return 0;<br /> decimal result = 0;<br /> decimal.TryParse(value.ToString(), out result);</p><p> return System.Convert.ToInt32(result);<br /> }</p><p> public static int Do(DBNull value)<br /> {<br /> return 0;<br /> }<br /> }<br />}