WEB 开发 开发语言 Java 技术 .Net 技术 数 据 库 硬件使用
图象媒体 Linux/Unix 移动平台 嵌入开发 Windows 专区 软件工程
Ajax 技术 | ASP | PHP | ASP.NET | C# | JSP | Access | Oracle | 网页设计 | Flash | 安全专题 | IIS | VC/MFC | Delphi | C/C++
 你的位置:首页 > 开发语言 > VB

是VB的bug,还是C#的bug?
[ 来源:ITWENKU 时间:2007-4-16 10:56:15 | 浏览:214人次 ]

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 第一次可以编译呢?


看来是VB描述的BU:VB给出的是极限值的点值,实际数应小于此值。
Private Sub Form_Load()
Dim maxcoordx As Double
maxcoordx = 1.79769313486231E+308
MsgBox maxcoordx
End Sub


VB 的变量是有符号的,正数实际只有 Double 的一半,所以如果 C 里面用无符号的双精度,VB 会溢出


Private Sub Form_Load()
Dim maxcoordx As Double
maxcoordx = cdbl(1.79769313486231E+308 )
MsgBox maxcoordx
End Sub


第一次可以编译?
好像不可能吧?



第一次确实是可以编译的,而且1.79769313486232E+308这个数必须是从c#的调试程序里复制过来的,在别的地方复制就不能编译。真是怪了。



Double(双精度浮点型)变量存储为 IEEE 64 位(8 个字节)浮点数值的形式,它的范围在负数的时候是从 -1.79769313486232E308 到 -4.94065645841247E-324,而正数的时候是从 4.94065645841247E-324 到 1.79769313486232E308。Double 的类型声明字符是数字符号 (#)。


 相关文章
·PictureBox问题
·经常更新EXE而引起的 如何制作安装程序的问题。
·vb编译后的exe文件运行后如何自动更改exe中的某些数据
·数字键盘如何实现
·问个关于绘图的问题
·picturebox控件中设置left和height的值

 推荐文章
初学VB 3天菜鸟问题很幼稚大家帮帮我谢谢。
MsgBox( ) 如何指定默认焦点按钮为 否?
怎么样单击触发DataGrid
我的查询语句 把结果放在datagrid中
在Picture中把窗体绘图显示,怎么知道窗体已经完全加载完毕?
我的Access时间字段查询出了点问题,望热心人相助
ActiveBar2如何传递 在菜单工具条内textbox的值?
vb 菜单 (新建文件项)
vb程序报错,但找不到原因,并且错误里什么也没有写.请各位指教
vb-vc混合编程。。。堆栈溢出问题---在线等
如何用VB远程锁定无盘工作站上的卡拉OK点歌系统?只要使其不接受遥控器的遥控功能就行了,谢谢
解决就给分,请高手帮忙:richtextbox 的一个问题
 版权所有:IT问库
copyright © 2006 www.itwenku.cn all rights reserved.