VB.NET精度問題在實際應中的解決方法
對于一個初學者來說,在使用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啦~