将字符串转换为浮点数并保留两位小数位的方法是否正确?字符串在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