2011-09-23 78 views
3

我正在嘗試使用實體框架,並且有一個聯繫人數據庫,它具有來自Google地圖的經度和緯度數據。C#在SQL Server中實現浮點數

指南說這應該存儲爲浮動。

我已經創建了我的POCO實體,其中包括Longitude作爲floatLatitude作爲float

我剛剛注意到,在數據庫中,這兩個都出現爲real

在我可以從Google獲取任何數據之前,還有很多工作要做,我離測試很遠,我只是想知道是否有人能告訴我這是否會在稍後出現問題上?

+0

@Pranay拉娜 - 我還沒有回答我沒有接受! – wil

回答

6

不,應該沒問題。請注意,您可能無法獲得與您從Google地圖收到的相同的值,因爲這可能會以十進制格式文本表示。但是,這實際上是一個物理量,因此更適合作爲float/double/real /(無論您喜歡的二進制浮點類型)而不是小數。 (小數更適合於人造量 - 尤其是貨幣。)

如果你看一下documentation for float and real你會看到real是有效float(24) - 一個32位浮點二進制點的類型,就像在C#float

編輯:正如在評論中指出,如果你想比精度顯著7-8位由float提供了更多,那麼你可能想在double而不是C#,這將意味着float(53)在SQL Server中。

+0

感謝您的解釋,但是,我只是手動輸入數據到數據庫中,正如您所說的那樣,它沒有存儲確切的值......隨機位置41.710855,-93.959198被存儲爲41.71085,-93.9592。 ..我只是試圖做一個搜索,這些位置似乎是一個3/4英里外...這是有點遠:(:(我猜這可能是不同的語言的定義之間的差異的浮動?(我試圖從這個例子工作 - http://code.google.com/apis/maps/articles/phpsqlsearch.html)...有沒有解決方法? – wil

+0

@wil:好吧,如果你想超過7-8個有效數字,在C#中使用'double'和在數據庫中使用'float(53)'。 –

+0

對不起,沒有意識到這會導致一個不同的問題,但是,謝謝 – wil