您的位置:程序门 -> vb -> 基础类



是vb的bug,还是c#的bug??


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


是vb的bug,还是c#的bug??[已结贴,结贴人:liaoning9]
发表于:2007-04-16 10:56:14 楼主
private   sub   form_load()
dim   maxcoordx   as   double:   maxcoordx   =   1.79769313486232e+308  
msgbox   maxcoordx
end   sub
就是这样简单的一个东西竟然出现问题,我在调试c#程序的时候通过double.maxvalue得到double的最大值是1.79769313486232e+308,我复制下来以后直接赋给vb程序的maxcoordx变量,可以编译,没有提示溢出,把vb工程关闭重新打开以后在编译却提示溢出,我知道vb里的double最大值是1.79769313486231570e+308,但是为什么我从c#调试程序里复制过来的1.79769313486232e+308   第一次可以编译呢?
发表于:2007-04-16 11:14:181楼 得分:4
看来是vb描述的bu:vb给出的是极限值的点值,实际数应小于此值。
private   sub   form_load()
dim   maxcoordx   as   double
maxcoordx   =   1.79769313486231e+308  
msgbox   maxcoordx
end   sub
发表于:2007-04-17 21:08:092楼 得分:4
vb   的变量是有符号的,正数实际只有   double   的一半,所以如果   c   里面用无符号的双精度,vb   会溢出
发表于:2007-04-17 21:13:033楼 得分:4
private   sub   form_load()
dim   maxcoordx   as   double
maxcoordx   =   cdbl(1.79769313486231e+308   )
msgbox   maxcoordx
end   sub
发表于:2007-04-17 23:57:134楼 得分:4
第一次可以编译?
好像不可能吧?
发表于:2007-04-18 13:43:425楼 得分:0
第一次确实是可以编译的,而且1.79769313486232e+308这个数必须是从c#的调试程序里复制过来的,在别的地方复制就不能编译。真是怪了。
发表于:2007-04-18 14:05:206楼 得分:4
double(双精度浮点型)变量存储为   ieee   64   位(8   个字节)浮点数值的形式,它的范围在负数的时候是从   -1.79769313486232e308   到   -4.94065645841247e-324,而正数的时候是从   4.94065645841247e-324   到   1.79769313486232e308。double   的类型声明字符是数字符号   (#)。


快速检索

最新资讯
热门点击