VB.NET精度問題在實際應(yīng)中的解決方法
對于一個初學(xué)者來說,在使用VB.NET語言進行實際編程的時候,難免會出現(xiàn)一些錯誤。但是有些錯誤往往都可以在我們編程實踐中通過經(jīng)驗的積累來獲得解決辦法。近日在使用VB.NET做一個無限分類,突然發(fā)現(xiàn)一個有關(guān)于VB.NET精度問題,現(xiàn)在發(fā)上園子里,看看大家有看法或者解決的辦法#t#
代碼如下:
- String.Format(
- "{
- 0:####################
- }",
- 2 ^ 63 - 1
- )
以上為求2的63次方減去1的值
輸出的結(jié)果為:9223372036854780000
如果沒有用format 結(jié)果為:922337203685478E+18
而我一同事用C#同樣的一句輸出結(jié)果是:9223372036854775807
而我在用Windows自帶的計算器輸出的結(jié)果同C#輸出的結(jié)果。這樣子就郁悶了,難道真的是VB.NET精度問題嗎?還是說我用錯了方法?
VB.NET精度問題的解決方法:
使用ctype(math.pow(2,63)-1,long)
然后在工程,編譯》》高級編譯選項:在優(yōu)化哪一框,“不做整數(shù)溢出檢查”這個選項打上鉤!OK啦~