当前位置:编程学习 > VB >>

label显示的数据为什么超过7位数就变成了科学计数形式

如题!如果这样:A=1234567,label1.caption=format(A,""),那label1显示的就是1230000
Private Sub Command1_Click()
Dim a As Long
a = 12345678
Label1.Caption = Format(a)
End Sub


经测试,你说的问题不存在。 Label1.Caption = cstr(a)
这叫‘科学计数’形式????


我用楼主的代码试验结果是:
根本没楼主说的那么回事…………


Option Explicit

Private Sub Command1_Click()
   Dim A As Long
   A = 1234567
   Label1.Caption = Format(A, "")
   'label1显示的是:   1234567
End Sub
After test by myself, did not find the similar problem 他问的应该是 输入 a =  273493754985749057349530955709 后,VB自动转换成指数E的形式 A)首先,ss18618 给出的 1234567 得 1230000 无法重现。
B)如果仅仅是超过7数变科学记数法,那么很可能用了不恰当的数据类型了
Dim A As Single
A = 12345678
Label1.Caption = Format(A, "")

最终结果是 1.234568E+07
因为 Single 类型只有 7 位有效数;可以换成 Double 类型,有 15 位有效数。 本帖最后由 bcrun 于 2012-01-29 20:35:47 编辑
引用 7 楼 tiger_zhao 的回复:
A)首先,ss18618 给出的 1234567 得 1230000 无法重现。
B)如果仅仅是超过7数变科学记数法,那么很可能用了不恰当的数据类型了

VB code
Dim A As Single
A = 12345678
Label1.Caption = Format(A, "")

最终结果是 1.234568E+07
因为 Single 类型只有 7 位有效数;可以换成……

有道理 我估计楼主前面那个数据变量用的是double类型的,所以在转换成字符串之前就已经是科学计数法了 呵呵。感觉跟是不是Label一点关系都没有。只是数据类型有关。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,