ArcMap中Double欄位儲存精度的問題

2021-07-23 02:53:03 字數 1040 閱讀 3880

win7 旗艦版

arcgis 10.1

測試過程

這裡插入一段,我詢問了esri的技術人員,乙個arcmap已知的bug

無論是設定多少位的小數保留位,最多顯示9位,儘管在字段屬性中上限可以設定到15位,而這9位也是經過四捨五入顯示的,所以這個值只是給你看看的,看到的並不是真實的值~

而如果你的小數字超過了15位,像上面那樣,會自動的在15位進行四捨五入如果你認為只是這麼簡單就錯了,這種情況只是在小數字的首位和整數字非0的情況下才成立,看下面的例子

這裡並沒有進行四捨五入而是進行了科學計數法,完全沒有丟失16位小數的精度!

之後我又測試了整數字,一共得有效位超過15位之後都會進行四捨五入~

小結:

1.小數字的顯示確實只能顯示9位,因為在顯示科學計數法的時候(大於15位的整數),也是一共只顯示9位小數數字

2.超過了15位有效數字之後,arcmap自動使用科學計數法進行四捨五入,這裡的15位有效數字指的是進行了科學計數法之後的15位有效數字,像0.0123456789012345儘管有16位小數,但是進行了科學計數法之後是1.23456789012345e-02實際上仍然是15位有效數字!

ArcMap中的名稱衝突問題

這是乙個非常有趣的問題。現在我乙個點層叫 汶川73 有乙個面層也叫 汶川73 使用空間連線工具來計算每個麵中被落入有多少個點。但不管怎麼算,結果都只能生成點,不能生成面,難道這個工具本來就是這樣的,看了幫助還是搞不懂。我在面的屬性表中做連線 按空間位置 則可以生在面檔案,這就更讓我鬱悶了,通過仔細反...

ArcMap中的名稱衝突問題

這是乙個非常有趣的問題。現在我乙個點層叫 汶川73 有乙個面層也叫 汶川73 使用空間連線工具來計算每個麵中被落入有多少個點。但不管怎麼算,結果都只能生成點,不能生成面,難道這個工具本來就是這樣的,看了幫助還是搞不懂。我在面的屬性表中做連線 按空間位置 則可以生在面檔案,這就更讓我鬱悶了,通過仔細反...

Junit中double型別的比較

在寫junit單元測試的時候發現直接用assertequals double,double 比較時會發生錯誤。報錯資訊 the method assertequals double,double from the type assert is deprecated junit中沒有assertequ...