System.OverflowException(十进制)

时间:2016-01-02 16:22:10

标签: c#

这里我正在研究C#中的项目。但是当我使用这个代码程序运行函数时,这个Exception就会出现。

jx += Convert.ToDecimal(-6164.64/ ((Math.Log10(Convert.ToDouble(0.434294D *Math.Log10(Convert.ToDouble( 0.813008D*(decimal.ToDouble(vyteznost_CO2_s_vysokym_tlakem * 1000000 * mars_g_acceleration) / martian_surface))))))));

2 个答案:

答案 0 :(得分:0)

在这里,您需要将公式分成计算一个简单表达式的每个步骤的步骤,并将结果分配给单独的变量以用于下一步。这将允许您调试计算并查看简化最终公式的方法。

答案 1 :(得分:0)

十进制范围: -79228162514264337593543950335M至79228162514264337593543950335M  双范围: 1.7976931348623157E + 308至-1.7976931348623157E + 308

喜欢这个:

        // vyteznost_CO2_s_vysokym_tlakem = x1     it mustn't be 0.00
        // mars_g_acceleration =            x2     it mustn't be 0.00
        // martian_surface =                x3     it mustn't be 0.00

        decimal x1 = 1.11m,            
        decimal x2 = 1.11m;            
        double x3 = 1.11d;          

        double v1 = decimal.ToDouble(x1 * 1000000 * x2) / x3;
        double v2 = v1 * 0.813008D;
        double v3 = Convert.ToDouble(v2);
        double v4 = Math.Log10(v3);
        double v5 = Convert.ToDouble(v4 * 0.434294D);
        double v6 = Math.Log10(v5);

        decimal v7 = Convert.ToDecimal(-6164.64D / v6); //Result 

`