Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据集按十进制添加值,但返回0_C#_.net_Dataset_Decimal - Fatal编程技术网

C# 数据集按十进制添加值,但返回0

C# 数据集按十进制添加值,但返回0,c#,.net,dataset,decimal,C#,.net,Dataset,Decimal,我有一个包含两列的数据集。 我将这两个值相加,它们都是objectdecimal类型 private decimal CalculateCensusForChild(DataSet dsGADCensusDetails) { var total = 0.00M; foreach (DataRow dr in dsGADCensusDetails.Tables[0].Rows) { total += WebUtilit

我有一个包含两列的数据集。 我将这两个值相加,它们都是objectdecimal类型

private decimal CalculateCensusForChild(DataSet dsGADCensusDetails)
    {
        var total = 0.00M;
        foreach (DataRow dr in dsGADCensusDetails.Tables[0].Rows)
        {
            total += WebUtility.Cast(dr["Male"], 0.00M) + WebUtility.Cast(dr["Female"], 0.00M);
        }
        return total;
    }

public static decimal Cast(Object aValue, decimal aOnError)
    {
        decimal result;
        try
        {
            result = decimal.Parse(aValue.ToString());
        }
        catch
        {
            result = aOnError;
        }
        return result;
    }
当值是整整数时,total返回的结果很好,但我希望它们是十进制值,因此返回一个十进制值,稍后我会将其转换为一个没有小数点的字符串

e、 g0.65+0.25返回0

总数始终等于一个整数,但用户界面上需要显示十进制值以减少舍入,因此一些解决方法似乎不必要,但这就是我们生活的世界

所以我想我在语法上弄乱了,把它转换成一个小数点,虽然它是加法,但是任何其他的想法都是非常受欢迎的


为大家干杯

什么是WebUtility.Cast?如果要求十进制值的和,为什么总变量是int?顺便说一句,我将其重命名为total,以遵循正常惯例。total需要使用decimal类型。以及WebUtility.Cast的邮政编码。大概它会将值舍入到最接近的整数,而您不希望它舍入。进行了您提到的更改并上载了cast方法,现在似乎工作状态更好,但如果您认为我可以做得更好,请随意添加更多注释: