データベースにGPS座標を格納する必要があります。浮動小数点は小数よりも正確さが低いと聞いています。本当?もしそうなら、何故フロートを使用するのですか?Rails 3 GPS座標の場合、浮動小数点または小数点以下
答えて
あなたは、より正確なGPS座標をしたい場合は、[はい小数を移動するための方法です。
create_table "models" do |t|
t.decimal "latitude", :precision => 15, :scale => 10, :default => 0.0
t.decimal "longitude", :precision => 15, :scale => 10, :default => 0.0
end
人々が山車を使用する理由は、彼らは通常、ほとんどのユースケースのために十分に正確であるということで、ストアに少ないスペースを使用します。あなたのような移行でそれらを作成することができます。
小数点以下を100%の精度で求めたい場合は、10 ** n(nは希望の精度)を乗算し、整数として格納します。
Floatオブジェクトは、ネイティブアーキテクチャの倍精度浮動小数点表現を使用して不正確な実数を表します。
参照:
http://www.ruby-doc.org/core-1.9.3/Float.html
地球赤道円周の周り4万キロと経度が360度にわたるので、赤道近く1度は約110キロに相当することになります。
したがって:
- 0桁精度:桁精度
- 2キロ11±:
- 1桁精度キロ110±±1.1キロ
- 3桁の精度:±110メートル
- 4桁精度:±11 m
- 5桁精度:±1.1 m
- 6桁精度: 11センチメートル
- 7桁の精度±:1.1センチメートル
±しかし、近いあなたが極に移動し、小さい方のParallelsのlenghtsになります。 たとえば、のパリの緯度が48度の場合、1度はcos(48) * 110 = 74 km
に相当します。したがって
:
- 0桁の精度:74キロ
- 1桁精度±:7.4キロ
- 2桁の精度±:0.74キロ
- 3桁の精度±:74メートル ±
- 4桁精度:±7.4 m
- 5桁精度:±0.74 m
- 6桁精度n:±7.4cm
- 7桁精度:±0。74 cm
したがって、DECIMAL(10,7)
のフィールドは、かなり正確にあなたを満足させるのに十分でしょう。
https://en.wikipedia.org/wiki/Decimal_degrees –
Paulの答えで分かるように、使用するケースによって異なります。
浮動小数点数は、およそ6桁の精度を提供します。
±11cmは、例えば住所のようにかなり受け入れられます。アドレスを表示している場合は、丸め誤差を合成する算術演算を行うつもりはありません。
- 1. "。" zendバリデータの浮動小数点数の小数点以下は
- 2. 浮動小数点/小数点から小数点以下3桁までを正確に丸めますか?
- 3. 小数点以下2桁の浮動小数点数と小数点以下6桁の同じ浮動小数点数を比較する
- 4. 浮動小数点数を小数点以下2桁までフォーマットします。
- 5. 浮動小数点数を小数点以下の桁数に拡張する
- 6. 浮動小数点数は浮動小数点数ですか?
- 7. 浮動小数点の小数点以下2桁までの出力
- 8. 小数点浮動小数点(C++)
- 9. 小数点以下の浮動小数点数を設定する
- 10. 浮動小数点数をN小数点以下に丸める方法[JAVA]
- 11. 浮動小数点数が同じ有意な小数点以下を持つ
- 12. 浮動小数点数を小数点以下2桁に変換する
- 13. 浮動小数点数を2小数点以下に丸める
- 14. 浮動小数点数浮動小数点数値
- 15. 変数の浮動小数点浮動小数点
- 16. 円で小数点以下を浮動小数点に変換する
- 17. 小数点以下3桁のPHP浮動小数点数を表示しますか?
- 18. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 19. 浮動小数点値と浮動小数点値の比較
- 20. MySqlの浮動小数点浮動小数点データ型
- 21. jQuery animateNumber - 浮動小数点浮動小数点の方法
- 22. 浮動小数点浮動小数点でボックスが下に飛ぶ
- 23. 小数点以下2桁の小数点以下2桁の小数点以下の桁数
- 24. Python3.x:浮動小数点数を2桁に小数点以下3桁に小数点以下を設定する
- 25. は、浮動小数点数
- 26. 小数点以下2〜4小数点以下切り上げ
- 27. CSSが浮動小数点浮動小数点を返す
- 28. IE7浮動小数点浮動小数点問題
- 29. 中央要素が浮動小数点浮動小数点:左
- 30. 浮動小数点型の列の小数点以下の桁数はどのように数えますか?
@jac「http:// www.ruby-forum.com/topic/208222」を参照してください。なぜdecimalで問題が解決されないのですか。 – Anil
@Anil私はフォローしていません。私は高精度のGPS座標のために浮動小数点の代わりに私のアプリケーションでこれを使用し、私はそれが期待どおりに動作します。 –