我們在做定位或者一些基於位置的系統的時候,肯定有需要用到儲存位置的經緯度,來精確判斷位置座標等。
赤道周長(公尺)
度數 (度)
400076000
360111322.2222
111132.22222
0.11113.222222
0.01
111.3222222
0.001
11.13222222
0.0001
1.113222222
0.00001
0.111322222
0.000001
0.011132222
0.0000001
所以,只需要精確到小數點後 7 位,精度就是 1cm,因此,資料庫儲存經緯度採用 decimal(10, 7) 即可。
附:decimal簡介
對sql server而言,decimal可用來儲存具有小數點而且數值確定的數值,它不像float和real是用來儲存近似值。對於visual basic而言,decimal是其版本5新增的資料型別,目的是滿足進行精密數**算的需求,它是範圍最大、最精確的浮點數型別。對於excel而言,decimal()函式用於按給定基數將數字的文字表示形式轉換成十進位制數。
中文名decimal型變數或decimal()函式
外文名decimal
最大可能值1
+/-79228162514264337593543950335
最大可能值2
+/-7.9228162514264337593543950335
最小非零值
+/-0.0000000000000000000000000001
用於visual basic用於excel
用於sql server
命名規則
decimal的命名格式為:
在這裡數字指乙個或多個數(0,1,…,9)的組合,因而一百萬能夠被表示為1000000或+100000,數字百分之一(1/100)能夠被表示為0.01。值得注意的是,逗號(,)是不允許在乙個 decimal名稱**現的。[5]
資料精度
對sql server而言,decimal和numeric視為相同的型別,它們可用來儲存具有小數點而且數值確定的數值。它們不像float和real是用來儲存近似值。此型別的列其宣告方式為decima[(p[,s])]或numericl[(p[,s])]。其中p是此數值全部的位數,含小數部分但不包括小數點,s則是小數的位數。p值稱為此數值的精確度,例如:decimal(10,3)表示共有7位整數3位小數,此例的精確度為10位。此型別的列可儲存的值範圍為1038-1到-1038-1之間。其占用儲存空間依精確度不同而不同,下表給出decimal型別變數精確度和占用空間的關係。
精確度 占用空間
1~9 5
10~19 9
20~28 13
29~38 17
如果使用該型別的變數未指定精確度,則系統使用預設的18位精確度,如果未加以指定小數字數的話,系統的預設值為0位小數。sql server搭配的前端開發工具(如vb,delphi),其所支援的精確度為28位,如果需要超過28位的精確度的話,可以以命令列的方式執行sqlservr.exe啟動sql server,並使用/引數即可,在此種狀況下,此型別最大的精確度為38。
用於visual basic
資料精度
decimal變數儲存為96位(12個位元組)無符號的整型形式帶符號的整型形式,並除以乙個10的冪數。這個變比因子決定了小數點右面的數字位數,其範圍從0到28變比因子為0(沒有小數字)的情形下,最大的可能值為+/-79,228,162,514,264,337,593,543,950,335。而在有28個小數字的情況下,最大值為+/-7.9228162514264337593543950335,而最小的非零值為+/-0.0000000000000000000000000001。
注意事項
decimal資料型別只能在variant中使用,即不能宣告一變數為decimai的型別。不過可用cde函式,建立乙個子型別為decimal的variant。
用於excel
語法結構為:
1)從語法結構可以看出,該函式只有兩個必選引數,各引數的作用如下:
text:該引數用於指定要轉化的資料,其長度必須小於或等於255個字元;
radix:該引數用於指定轉換基數,其值必須大於或等於2(二進位制或基數2)且小於或等於36(基數36)。
注意事項
text引數可以是對於基數有效的字母數字字元的任意組合,並且不區分大小寫;
如果任何乙個引數超出其限制,十進位制可能返回#num!或者#value!錯誤值。
MYSQL儲存經緯度使用什麼資料型別
我們在做定位或者一些基於位置的系統的時候,肯定有需要用到儲存位置的經緯度,來精確判斷位置座標等。那麼我們在資料庫中用什麼字段型別去儲存經緯度呢?我們都知道經緯度範圍是 180 180。但是經緯度有可能是這樣的值40.69847032728747。肯定是儲存資料精度越高,最終位置定位越準確。但是考慮到...
MYSQL儲存經緯度使用什麼資料型別
我們在做定位或者一些基於位置的系統的時候,肯定有需要用到儲存位置的經緯度,來精確判斷位置座標等。那麼我們在資料庫中用什麼字段型別去儲存經緯度呢?我們都知道經緯度範圍是 180 180。但是經緯度有可能是這樣的值40.69847032728747。肯定是儲存資料精度越高,最終位置定位越準確。但是考慮到...
EF儲存經緯度資料的問題
當採用ef coder first生成的dbcontext儲存decimal型別資料到資料庫,預設只會儲存小數點後的前2位小數,其餘均置0 例如儲存101.182352152322,實際存到資料庫裡的資料為101.180000000000。解決方法 在建立專案dbcontext時,重寫dbconte...