2
在.net世界中,c語言的atof函數是否有一個實現? float.Parse行爲不一樣。我在哪裏可以找到atof的.net實現?
一些行爲差異。
- 「50蘋果」 將返回50
- 「50蘋果1號」 將返回50
- 「蘋果」 將返回0
在.net世界中,c語言的atof函數是否有一個實現? float.Parse行爲不一樣。我在哪裏可以找到atof的.net實現?
一些行爲差異。
如果你的意思是你想複製atof
的從寬處理(忽略前面的空白和尾隨非數字字符),你可以這樣做(假設C#3.0):
float myAtof(string myString)
{
Predicate<char> testChar = c => c == '.' ||
c == '-' ||
c == '+' ||
char.IsDigit(c);
myString = new string(myString.Trim().TakeWhile(testChar).ToArray());
if (myString.Length > 0)
{
float rvl;
// accounts for bogus strings of valid chars, e.g. ".-":
if (float.TryParse(myString, out rvl))
{
return rvl;
}
}
return 0;
}
它可能如果你描述的次幫助行爲差異。 – 2010-02-12 17:17:47
我相信Single.Parse應該做你想做的。你能舉一個沒有你想要的行爲的例子嗎? – RossFabricant 2010-02-12 17:21:17