將字符串轉換爲浮點數並保留兩位小數位的方法是否正確?字符串在C中以兩位小數位浮動#
string s1 = "9.09";
string s2= "99,09";
string s3= ",09";
ConvertToFloat(s1);
ConvertToFloat(s2);
ConvertToFloat(s3);
private float ConvertToFloat(string value)
{
float result;
decimal de= Convert.ToDecimal(value);
bool IsDecimalFormat = IsDecimal(de);
if (IsDecimalFormat)
{
result =Convert.ToSingle(value);
}
else
{
result = Convert.ToSingle(value)/100;
}
return result;
}
}
private bool IsDecimal(decimal myDec)
{
return (Decimal.Ceiling(myDec) > myDec) ? true : false;
}
你已經混合了「。」和「,」在您的示例數據。你希望兩者都被當作小數點嗎?基本上這是一個非常混亂的功能,有時會返回價值的1/100。另外,如果你對小數位感興趣,你應該幾乎可以肯定地使用`decimal`而不是`float`。 – 2010-11-23 07:24:30
我假設`/ 100`是爲了支持國際化 - `「99,09」` - > 9909 - > 99.09。我很確定它輸入「99」時失敗。 – Kobi 2010-11-23 07:35:26