是空检查然后转换为十进制

是空检查然后转换为十进制

本文介绍了是空检查然后转换为十进制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码在这里..



my code is here..

foreach (DataRow dr in gv1.Rows)
{
    decimal Total_Sqrft = Convert.ToDecimal(
        String.IsNullOrEmpty(Convert.ToString(dr[1])) ?? "0" : Convert.ToString(dr[1])
    );
}





更新:

我解决了它使用..





Updated:
I solved It Using..

if(String.IsNullOrEmpty(Convert.ToString(dr[1])))
{
    decimal Total_Sqrft=0;
}
else
{
    decimal Total_Sqrft = Convert.ToDecimal(dr[1]);
}



但是我想知道上面的操作。


But I want to know about the above operation.

推荐答案

decimal Total_Sqrft = 0;
foreach (DataRow dr in gv1.Rows)
{
    Total_Sqrft = 0;
    if (dr[1] != null)
    {
        string tmp = dr[1].ToString();
        if (tmp != String.Empty)
            Total_Sqrft = decimal.Parse(tmp);
    }
}





单行



The one-liner

decimal Total_Sqrft = 0;
foreach (DataRow dr in gv1.Rows)
{
    // The below code can be read:
    // if dr[1] is not null, use the value in the cell otherwise default to 0.
    Total_Sqrft = decimal.Parse((dr[1] == null || dr[1].ToString() == String.Empty) ? "0" : dr[1].ToString());
}





您还可以查看 decimal.TryParse(...)



public decimal CnvToDecimal(object Data)
        {
            try
            {
                return System.Convert.ToDecimal(Data);
            }
            catch
            {
                return 0;
            }
        }





并调用此功能





and call the function like this

foreach (DataRow dr in gv1.Rows)
           {
               decimal Total_Sqrft = CnvToDecimal(dr[1]);
           }





祝你好运; - )



good luck ;-)


这篇关于是空检查然后转换为十进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 04:11