因为要把控件中的值进行计算,所以要Convert.ToDouble,控件中默认值都为空格,计算的时候我想把空格都替换成0
Convert.ToDouble(dgv1["_gyscxf", i].Value.ToString().Trim().Replace("","0"))
提示这样的错误:String cannot be of zero length.
Parameter name: oldValue 请问是哪里的问题呀。
Convert.ToDouble(dgv1["_gyscxf", i].Value.ToString().Trim().Replace("","0"))
提示这样的错误:String cannot be of zero length.
Parameter name: oldValue 请问是哪里的问题呀。
--------------------------------------------------------------------^^
oldValue指的就是它。
与其用dgv1["_gyscxf", i].Value.ToString().Trim()
不如用个if吧。当为空就等于0。
{
if(dgv["_gyscxf",i].Value is string && !string.IsNullOrEmpty(dgv["_gyscxf",i].Value))
{
// 转换与替换
}
}
Convert.ToDouble(data==""?"0":data);
Convert.ToDouble(dgv1["_gyscxf", i].Value.ToString().Trim().Replace('空格','0'))
你可以判断一下 文本框内容Trim()后是否为“”(空字符串) 如果是的话 为零
这样用是可以的
Replace(" ","sss") 第一个参数中间有个空格
这个是正确的trim()函数本来就会去掉前后的空格
不用在replace了况且""转换为double也会出错
应该自己判断
如果为空就返回0,否则返回值
Replace第一个参数oldValue的长度不能为0也就是你的Replace("","0")这段的第一个参数不能为"",为""的话长度就是为0了,但是你可以在""中加个空格,像这样" "
Replace(" ","0");空格一下就可以了.这样写没问题的。我试了。
Convert.ToDouble(dgv1["_gyscxf", i].Value.ToString().Trim().Replace('','0'))
或
Convert.ToDouble(dgv1["_gyscxf", i].Value.ToString().Trim().Replace(" ","0"))
都提示
Input string was not in a correct format.
Convert.ToDouble(dgv1["_gyscxf", i].Value.ToString().Trim().Replace('','0'))
或
Convert.ToDouble(dgv1["_gyscxf", i].Value.ToString().Trim().Replace(" ","0"))
都提示
Input string was not in a correct format.
============================================
这不是替换的问题了,应该是你的值不能转换成double类型!你跟踪看看dgv1["_gyscxf", i].Value.ToString().Trim().Replace(" ","0")是什么?