***mysql中經度緯度欄位用什麼儲存(關於mysql的float和decimal區別)

來源:互聯網
上載者:User

標籤:

float,decimal精確度比較 

float,double容易產生誤差,對精確度要求比較高時,建議使用decimal來存,decimal在mysql記憶體是以字串儲存的,

用於定義貨幣要求精確度高的資料。在資料移轉中,float(M,D)是非標準定義,最好不要這樣使用。M為精度,D為標度。

mysql>  create table t1(c1 float(10,2), c2 decimal(10,2),c3 float); // 10不包括小數點

mysql>  insert into t1 values(1234567.23, 1234567.23,1234567.23);
mysql>  select * from t1;

資料顯示與所用的用戶端工具有關

1.在Toad for MySQL中的顯示為

c1                    c2                            c3

1234567    1234567.23        1234570

2.在MySQL Query Browser中的顯示為

c1                    c2                            c3

1234567.25    1234567.23        1.23457e+006

3.程式中取出資料

1234567          1234567.23        1234570

mysql> insert into t1 values(9876543.21, 9876543.12,9876543.21);

1.在Toad for MySQL中的顯示為

c1                    c2                            c3

9876543       9876543.12            9876540

2.在MySQL Query Browser中的顯示為

c1                    c2                            c3

9876543.00   9876543.12        9.87654e+006

3.程式中取出資料

9876543         9876543.12        9876540

mysql>  insert into t1 values(1.21, 1.12,1.21);

1.在Toad for MySQL中的顯示為

c1                    c2                            c3

1.21                1.12                       1.21

2.在MySQL Query Browser中的顯示為

c1                    c2                            c3

1.21               1.12                         1.21

3.程式中取出資料

1.21                1.12                        1.21

mysql>  insert into t1 values(1.2, 1.2,1.2);

1.在Toad for MySQL中的顯示為

c1                    c2                            c3

1.2                  1.20                        1.2

2.在MySQL Query Browser中的顯示為

c1                    c2                            c3

1.20                1.20                         1.2

3.程式中取出資料

1.2                   1.20                        1.2

mysql>  insert into t1 values(9876543.216, 9876543.126,9876543.216);

1.在Toad for MySQL中的顯示為

c1                    c2                            c3

9876543        9876543.13           9876540

2.在MySQL Query Browser中的顯示為

c1                    c2                            c3

9876543.00   9876543.13          9.87654e+006

3.程式中取出資料

9876543         9876543.13          9876540

mysql>  insert into t1 values(1.216, 1.126,1.216);

1.在Toad for MySQL中的顯示為

c1                    c2                            c3

1.22                1.13                        1.216

2.在MySQL Query Browser中的顯示為

c1                    c2                            c3

1.22               1.13                        1.216

3.程式中取出資料

1.22               1.13                        1.216

不定義fload, double的精度和標度時,儲存按給出的數值儲存,這於OS和當前的硬體有關。

decimal預設為decimal(10,0)

因為誤差問題,在程式中,少用浮點數做=比較,可以做range比較。如果數值比較,最好使用decimal類型。

精度中,符號不算在內:

mysql> insert into t1 values(-98765430.21, -98765430.12);
mysql> select * from t1;    

c1                              c2         
-98765432.00        -98765430.12  

***mysql中經度緯度欄位用什麼儲存(關於mysql的float和decimal區別)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.