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