C# 正在尝试将字符串转换为双精度
我有两个来自数据库的值,我需要将这些值转换成double,我已经这样做了 我刚才提到过,就像局部变量一样C# 正在尝试将字符串转换为双精度,c#,string,datatable,double,C#,String,Datatable,Double,我有两个来自数据库的值,我需要将这些值转换成double,我已经这样做了 我刚才提到过,就像局部变量一样 string val; string dpayment; 我通过以下查询从数据库中获取值 if (dt != null) { if (dt.Rows.Count > 0) { dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]).To
string val;
string dpayment;
我通过以下查询从数据库中获取值
if (dt != null)
{
if (dt.Rows.Count > 0)
{
dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]).ToString("0.00");
val= Convert.ToInt32( dt.Rows[3]["value"]).ToString();
}
}
我正在使用这些值并像这样进行操作
double eqvperiod = Convert.ToDouble(val / dpayment).ToString();
但这是一个错误
运算符“/”不能用作string和string类型的操作数
任何人都可以在这方面提供帮助
我的最终结果是,我想将来自数据库的值转换为double,并且在分割之前,我必须对这些值执行操作转换为
double
:
double eqvperiod = Convert.ToDouble(val) / Convert.ToDouble(dpayment);
实际上,您不需要第二次Convert()
然后ToString()
然后Convert()
:
int val = 0;
double dpayment = 0.0;
if (dt != null && dt.Rows.Count > 0)
{
dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);
val= Convert.ToInt32( dt.Rows[3]["value"]);
}
double eqvperiod = val / dpayment;
分割前转换为双精度:
double eqvperiod = Convert.ToDouble(val) / Convert.ToDouble(dpayment);
实际上,您不需要第二次Convert()
然后ToString()
然后Convert()
:
int val = 0;
double dpayment = 0.0;
if (dt != null && dt.Rows.Count > 0)
{
dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);
val= Convert.ToInt32( dt.Rows[3]["value"]);
}
double eqvperiod = val / dpayment;
试试这个:
double eqvperiod = (Convert.ToDouble(val) / Convert.ToDouble(dpayment));
试试这个:
double eqvperiod = (Convert.ToDouble(val) / Convert.ToDouble(dpayment));
为什么将val和dpayment声明为字符串?如果希望它们是数值类型,则更改变量声明并删除ToString,即
int val;
double dpayment;
dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);
val= Convert.ToInt32( dt.Rows[3]["value"]);
为什么将val和dpayment声明为字符串?如果希望它们是数值类型,则更改变量声明并删除ToString,即
int val;
double dpayment;
dpayment = Convert.ToDouble(dt.Rows[1]["monthlyamount"]);
val= Convert.ToInt32( dt.Rows[3]["value"]);
这个怎么样
double eqvperiod = 0.00;
if (dt != null && dt.Rows.Count > 0)
{
eqvperiod = Convert.ToDouble(dt.Rows[1]["monthlyamount"]) /
Convert.ToInt32(dt.Rows[3]["value"]);
}
这个怎么样
double eqvperiod = 0.00;
if (dt != null && dt.Rows.Count > 0)
{
eqvperiod = Convert.ToDouble(dt.Rows[1]["monthlyamount"]) /
Convert.ToInt32(dt.Rows[3]["value"]);
}
您还可以执行
double.Parse(“0.010”)
这也适用于int、short、decimal以及任何其他数字类型您也可以执行
double.Parse(“0.010”)
这也适用于int、short、decimal,可能还有任何其他数字类型为什么要将数据库中的值存储为字符串?当您转换为int或double时,为什么要对其调用toString()?如果您希望eqvperiod是双精度的,为什么要对除法结果调用toString()?为什么要将从数据库中得到的值存储为字符串?当您转换为int或double时,为什么要对其调用toString()?如果希望eqvperiod是双精度的,为什么要对除法结果调用toString();如果(dt!=null&&dt.Rows.Count>0){dpayment=Convert.ToDouble(dt.Rows[1][“monthlyamount”];val=Convert.ToInt32(dt.Rows[3][“value”];}我已经更新了初始化
val
和dpayment
的答案,这应该可以修复该错误。我不知道你所说的“使用数据库值”是什么意思。我在双eqvperiod=val/dpayment处遇到了这样的错误“使用未分配的本地变量”;如果(dt!=null&&dt.Rows.Count>0){dpayment=Convert.ToDouble(dt.Rows[1][“monthlyamount”];val=Convert.ToInt32(dt.Rows[3][“value”];}我已经更新了初始化val
和dpayment
的答案,这应该可以修复该错误。我不知道你所说的“使用数据库值”是什么意思。我在双eqvperiod=val/dpayment处遇到了这样的错误“使用未分配的本地变量”;声明值时将其初始化为0,即int val=0;当您声明值时,将其初始化为0,即在双eqvperiod=val/dpayment处出现类似“使用未分配的局部变量”的错误;声明值时将其初始化为0,即int val=0;声明值时将其初始化为0,即。