程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> [C#]"23.00"可以轉換成int嗎

[C#]"23.00"可以轉換成int嗎

編輯:關於C#
 

今天和大家分享一下這個小細節

"23.00"可以轉換成int嗎?

在C# 中想要將String類型轉換成int時有以下幾種方法:

int.TryParse;

Convert.Toint32;

(int)string;


在遇到一下特殊的情況下就會轉換失敗,比如今天說的"23.00",這種情況就會出現以下情況:

使用Convert.ToInt32(string) 會出現輸入字符串格式錯誤問題。


使用Int.TryParse(string)也會轉換失敗,不會錯誤,會輸出默認的0

解決方案是必須使用Decimal或者Double去轉換,以後看到這個千萬別傻傻的使用int去轉換。例如

使用Decimal.Parse

string a = "23.00";
decimal c = decimal.Parse(a);
Console.WriteLine("result:{0}", (int)c);
//result:23
使用Double.Parse


string a = "23.00";
Double c = Double.Parse(a);
Console.WriteLine("result:{0}", (int)c);
//result:23
如果你怕出現異常可以使用TryParse,或者使用自己的定義的擴展方法去實現這個轉換,但一定要注意記得使用哦。

注意點:當你使用(int)string強行轉換的時候你會發現如果帶有小數點系統會被自動忽略。

如果你使用Convert.ToInt32轉換時系統會四捨五入。

 


附:如何實現一個類型的擴展類呢。

必須是一個靜態類

將該擴展方法實現為靜態方法,並使其至少具有與包含類相同的可見性。

該參數必須以 this 修飾符開頭

 


示例:

public static class ObjectExtension
{
public static int ToInt(this object obj)
{
int result = default(int);

if (obj != null && obj != DBNull.Value)
{
int.TryParse(obj.ToString(), out result);
}

return result;
}
}
好了快去試試吧

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved