C# &引用;指定的强制转换无效";对于DataTable.Compute?
我这里有这个代码:C# &引用;指定的强制转换无效";对于DataTable.Compute?,c#,casting,datatable,C#,Casting,Datatable,我这里有这个代码: decimal dec = (decimal)MyDataTable.Compute("Min(Rooms)", string.Empty); 它总是告诉我指定的强制转换无效。我如何在运行时检查计算是否成功 谢谢:)尝试使用Decimal.TryParse()看看这是否对您有帮助。 这应该起作用: var s = "123.34"; decimal d; bool isDec = Decimal.TryParse(s, ou
decimal dec = (decimal)MyDataTable.Compute("Min(Rooms)", string.Empty);
它总是告诉我指定的强制转换无效。我如何在运行时检查计算是否成功
谢谢:)尝试使用
Decimal.TryParse()
看看这是否对您有帮助。
这应该起作用:
var s = "123.34";
decimal d;
bool isDec = Decimal.TryParse(s, out d);
if (isDec)
Console.WriteLine("It was a decimal: " + d);
else
Console.WriteLine("Not a decimal!");
Console.WriteLine(isDec);
Console.ReadLine();
需要两个参数的原因是,第一个参数是以字符串格式表示的十进制数。如果TryParse成功,结果将存储在
d
(在上面的示例中)。在上面的示例中,isDec
打印true
尝试使用Decimal.TryParse()
查看这是否有帮助。
这应该起作用:
var s = "123.34";
decimal d;
bool isDec = Decimal.TryParse(s, out d);
if (isDec)
Console.WriteLine("It was a decimal: " + d);
else
Console.WriteLine("Not a decimal!");
Console.WriteLine(isDec);
Console.ReadLine();
需要两个参数的原因是,第一个参数是以字符串格式表示的十进制数。如果TryParse成功,结果将存储在d
(在上面的示例中)。在上面的示例中,isDec
打印true
试试这个
object dec = MyDataTable.Compute("Min(Rooms)", string.Empty);
decimal d;
bool result = Decimal.TryParse(dec.ToString(), out d);
如果结果
为真
则表示解析成功请尝试此操作
object dec = MyDataTable.Compute("Min(Rooms)", string.Empty);
decimal d;
bool result = Decimal.TryParse(dec.ToString(), out d);
如果
result
为true
则表示解析成功Decimal。TryParse(dec)至少需要2个参数?第二个参数是out(put)参数,因此解析结果有位置(因为方法的实际返回值是布尔成功/失败指示器)@grady-看看我关于为什么需要2的答案。你可以试试这个Decimal.TryParse(MyDataTable.Compute(“Min(Rooms)”,string.Empty)。ToString(),out d)代码>是的,我同意有时会发生这种情况,但我想重要的是哪个答案对readerDecimal更有意义。TryParse(dec)至少需要2个参数?第二个参数是out(put)参数,因此解析结果有一个位置(因为方法的实际返回值是布尔成功/失败指示器)@grady-看看我关于为什么需要2的答案。你可以试试这个Decimal.TryParse(MyDataTable.Compute(“Min(Rooms)”,string.Empty)。ToString(),out d)是的,我同意有时会发生这种情况,但我想重要的是哪个答案对读者更有意义