label显示的数据为什么超过7位数就变成了科学计数形式
如题!如果这样:A=1234567,label1.caption=format(A,""),那label1显示的就是1230000Private Sub Command1_Click()
Dim a As Long
a = 12345678
Label1.Caption = Format(a)
End Sub
经测试,你说的问题不存在。 Label1.Caption = cstr(a)
这叫‘科学计数’形式????
我用楼主的代码试验结果是:
根本没楼主说的那么回事…………
Option ExplicitAfter test by myself, did not find the similar problem 他问的应该是 输入 a = 273493754985749057349530955709 后,VB自动转换成指数E的形式 A)首先,ss18618 给出的 1234567 得 1230000 无法重现。
Private Sub Command1_Click()
Dim A As Long
A = 1234567
Label1.Caption = Format(A, "")
'label1显示的是: 1234567
End Sub
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 编辑
有道理 我估计楼主前面那个数据变量用的是double类型的,所以在转换成字符串之前就已经是科学计数法了 呵呵。感觉跟是不是Label一点关系都没有。只是数据类型有关。
补充:VB , 基础类