ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/csref/html/vcreffloatingpointtypes.htm
浮点型表请参见
默认值表 | 内置类型表 | 整型表 | 格式化数值结果表 | 类型引用表 | decimal
下表显示了浮点型的精度和大致范围。类型 大致范围 精度 
float ±1.5 × 10−45 到 ±3.4 × 1038 7 位 
double ±5.0 × 10−324 到 ±1.7 × 10308 15 到 16 位 

解决方案 »

  1.   

    完整代码如下:     LstrSQL = "select max(ZR) From ST_GZQ_B where (" + LZR + "-ZR)>0 and ltrim(rtrim(STCDT))= '" + LSTCDT + "'"
         LCmd.CommandText = LstrSQL
        MinZR = LCmd.ExecuteScalar   --------此时MinZR =21.400000000000002
         
           LstrSQL = "select Q From ST_GZQ_B where ZR='" + MinZR.ToString + "' and ltrim(rtrim(STCDT))= '" + LSTCDT + "'"        ---------此时候MinZR.ToString=21.4
              LCmd.CommandText = LstrSQL怎么办?
                                                            MinQ = LCmd.ExecuteScalar
      

  2.   

    主要的问题是float和double的精度不够,所以出现了这种问题!
    不知道你可不可以把MinZR直接第一为string类型,那样的话就不会出问题
    !如果要使用MinZR比较数据大小的,中间在强制转换一下就可以了!