18 个解决方案
#1
Convert.ToDouble()
#2
float.Parse或者Convert.ToSingle
Single就是float
Single就是float
#3
+1
#4
楼上的楼上正解。
#5
ok
#6
试过很多次了,如果String的值为整数,则报错。
#7
贴出你的代码 + 相关数据
#8
/// <summary>
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float intValue = defValue;
if (strValue != null)
{
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
{
intValue = Convert.ToSingle(strValue);
}
}
return intValue;
}
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float intValue = defValue;
if (strValue != null)
{
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
{
intValue = Convert.ToSingle(strValue);
}
}
return intValue;
}
#9
学习了
#10
当输入值为整数时
float intValue = Convert.ToSingle("123");
并不会报错,很正常
唯一错的可能在于
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
这个判断正则不正确.导致输入了错误的值,也能验证通过
而且你的这个正则表达式一看就不太准确.
float intValue = Convert.ToSingle("123");
并不会报错,很正常
唯一错的可能在于
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
这个判断正则不正确.导致输入了错误的值,也能验证通过
而且你的这个正则表达式一看就不太准确.
#11
int i = int.Parse(String);
float f = float.Parse(i/1.00);
试试
float f = float.Parse(i/1.00);
试试
#12
+++++++++++
#13
为空肯定会报错阿,你看有没有float.TryParse方法,可以在转换不成功的时候返回一个自定义的值
#14
Float.Parse();
#15
if (!float.TryParse(str, out result))
{
//异常处理
}
{
//异常处理
}
#16
dz里面扣出来的东西吧.
#17
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float result = 0;
if (float.TryParse(str, out result))
{
return result;
}
else
{
return defValue;
}
}
#18
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float result = 0;
if (float.TryParse(strValue.toString(), out result))
{
return result;
}
else
{
return defValue;
}
}
#1
Convert.ToDouble()
#2
float.Parse或者Convert.ToSingle
Single就是float
Single就是float
#3
+1
#4
楼上的楼上正解。
#5
ok
#6
试过很多次了,如果String的值为整数,则报错。
#7
贴出你的代码 + 相关数据
#8
/// <summary>
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float intValue = defValue;
if (strValue != null)
{
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
{
intValue = Convert.ToSingle(strValue);
}
}
return intValue;
}
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float intValue = defValue;
if (strValue != null)
{
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
{
intValue = Convert.ToSingle(strValue);
}
}
return intValue;
}
#9
学习了
#10
当输入值为整数时
float intValue = Convert.ToSingle("123");
并不会报错,很正常
唯一错的可能在于
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
这个判断正则不正确.导致输入了错误的值,也能验证通过
而且你的这个正则表达式一看就不太准确.
float intValue = Convert.ToSingle("123");
并不会报错,很正常
唯一错的可能在于
bool IsFloat = new Regex(@"^([-]|[0-9])[0-9]*(\.\w*)?$").IsMatch(strValue.ToString());
if (IsFloat)
这个判断正则不正确.导致输入了错误的值,也能验证通过
而且你的这个正则表达式一看就不太准确.
#11
int i = int.Parse(String);
float f = float.Parse(i/1.00);
试试
float f = float.Parse(i/1.00);
试试
#12
+++++++++++
#13
为空肯定会报错阿,你看有没有float.TryParse方法,可以在转换不成功的时候返回一个自定义的值
#14
Float.Parse();
#15
if (!float.TryParse(str, out result))
{
//异常处理
}
{
//异常处理
}
#16
dz里面扣出来的东西吧.
#17
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float result = 0;
if (float.TryParse(str, out result))
{
return result;
}
else
{
return defValue;
}
}
#18
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null) || (strValue.ToString().Length > 10))
{
return defValue;
}
float result = 0;
if (float.TryParse(strValue.toString(), out result))
{
return result;
}
else
{
return defValue;
}
}