如果返回数据的值小于2^31则unsigned long和long是相等的

解决方案 »

  1.   

    Dim TempDbl as DoubleTempDbl=GetLng
    If TempDbl<0 then TempDbl=CDbl(&hffffffff)+TempDbl+1
    OueStr=CStr(TempDbl)
      

  2.   

    如果发现返回的值是负值你就取它的绝对值然后加上2^31,等于返回unsigned long型的值然后赋给一个double的变量
      

  3.   

    TempDbl=CDbl(&hffffffff)+TempDbl+1对吗
    是不是应该TempDbl=CDbl(&HEfffffff)-TempDbl
      

  4.   

    TempDbl=CDbl(&H8fffffff)-TempDbl 
    写错了应该这样
      

  5.   

    TempDbl=CDbl(&H8fffffff)-TempDbl是错的
    比如(unsigned long)-1=&hffffffff=4294967295
    而那个式子=&h90000000=2415919104