变量都为字符串
sOriNumber="0.00000000000000000000000001"
sOriNumber = Val(sOriNumber)
结果成了
sOriNumber ="1E-26"
Dim sNumString as String 
如何回恢成"0.00000000000000000000000001"这个形式?

解决方案 »

  1.   

    sOriNumber是string,那你还让它sOriNumber = Val(sOriNumber)?
    sOriNumber ="1E-26"?
    1E-26是指数形式的数值,而不是字符串!
    正确的思路应该是
    dim sOriNumber as double,sNumString as string
    sNumString="0.00000000000000000000000001"
    sOriNumber = Val(sNumString)
      

  2.   

    sOriNumber="0.00000000000000000000000001"
    这是字符串了啊1
    sOriNumber = Val(sOriNumber)
    这又是作什么里,呵呵,起码的两个变量吧!
      

  3.   

    不好意思。是因为程序里需要。我只是说个例子
    那这样说
    Dim dblOriNumber as Double
    dblOriNumber =val("1E-26")
    如何让他成为
    dim stmp as string 
    stmp ="0.00000000000000000000000001"
      

  4.   

    ? formatnumber(1E-26,26,vbTrue)
    0.00000000000000000000000001
      

  5.   

    sOriNumber是string,那你还让它sOriNumber = Val(sOriNumber)?
    sOriNumber ="1E-26"?
    1E-26是指数形式的数值,而不是字符串!
    对于这个,可以试下 
    if isNumeric("2-") then 
    end if
    就知道为什么要val一次了
      

  6.   

    为什么要这样做,感觉没必要吧。
    用另外一个变量来记录一下,到时候用这个变量不就行了?sOriNumber="0.00000000000000000000000001"
    sTemp=sOriNumber  '加这个变量记录
    sOriNumber = Val(sOriNumber)到以后想用科学记数法的就用sOriNumber,想用一般记数法的就用sTemp
      

  7.   

    用formatnumber是可以。但没有别的方法吗?到现在看来也只能这样了。结贴了。分较少,就只给正确结论的同志们了哦。