使用浮点数进行ASP.Net转换

时间:2011-07-07 19:44:25

标签: c# asp.net css-float equals

我的asp.net/C#数学应用程序中有转换或某种类型转换问题。承包商编写了一些代码来计算装配中的相对标准误差。但是当我运行它时,显然无法正常工作。

数据类型如下:

        public double dSwx = 0.0, dSw = 100.0;
        public double dTx = 0.0, dTwn=0.0;
        public float fEstimateVal = 0.0F;       //  For Estimate Value, it should be same as Swx/Sw

        //i did a system.out on this in my web app and they came out as:
        //zeroDataCell.dSwx = 0.0;
        //zeroDataCell.dSw = 100.0;

        zeroDataCell.fEstimateVal = (float)(zeroDataCell.dSwx / zeroDataCell.dSw) * 100.0f;

       //so now zeroDataCell.fEstimateVal should be 0.0, but my code blows 
       //through the if statement below, is there some conversion problem? 
       //should i use EqualsTo?            


        if (zeroDataCell.fEstimateVal != 0.0f)
            zeroDataCell.fRse = zeroDataCell.fTwx / zeroDataCell.fEstimateVal * 100.0f;0

为什么eqauls为零的fEstimateVal会通过if循环?

2 个答案:

答案 0 :(得分:2)

处理浮点数/双数字始终是精确平衡。如果要将其与clear 0进行比较,请将其转换为整数并在之后进行比较。

或者添加一些像

这样的精密内容
((int)(floatnumber * 100)) == 0.

答案 1 :(得分:1)

以下代码在这里工作正常:

if (zeroDataCell.fEstimateVal != 0)
  zeroDataCell.fRse = zeroDataCell.fTwx / zeroDataCell.fEstimateVal * 100.0f;