对于一个初学者来说,在使用VB.NET语言进行实际编程的时候,难免会出现一些错误。但是有些错误往往都可以在我们编程实践中通过经验的积累来获得解决办法。近日在使用VB.NET做一个无限分类,突然发现一个有关于VB.NET精度问题,现在发上园子里,看看大家有看法或者解决的办法#t#
代码如下:
- String.Format(
- "{
- 0:####################
- }",
- 2 ^ 63 - 1
- )
以上为求2的63次方减去1的值
输出的结果为:9223372036854780000
如果没有用format 结果为:922337203685478E+18
而我一同事用C#同样的一句输出结果是:9223372036854775807
而我在用Windows自带的计算器输出的结果同C#输出的结果。这样子就郁闷了,难道真的是VB.NET精度问题吗?还是说我用错了方法?
VB.NET精度问题的解决方法:
使用ctype(math.pow(2,63)-1,long)
然后在工程,编译》》高级编译选项:在优化哪一框,“不做整数溢出检查”这个选项打上钩!OK啦~