- 如果我將Decimal存儲爲1.200,我想要一個查詢檢索值爲1.200,但是如果我將值存儲爲1.450005,我想要一個查詢返回1.450005。
- 我需要能夠在字段上比較數字類型。
乍一看,十進制(10,6)似乎是我的要求很好地利用了現場代表的價格,但我真正想要的是可以存儲先進 6位字段在小數點的右邊,不一定全是6位數字,每個時間點。我應該使用什麼樣的mysql類型來存儲變量精度的十進制數(可能會改變每條記錄)
如果滿足這個要求,我已經在字段中有效地編碼了精確信息,這對於將數據檢索到C++ Decimal對象的實例中是很有用的,這要求1.20(精度2)不同於1.2000 (精度4),即使它們具有相同的價值/價值。將精確信息保留在我的對象中對於進一步的算術運算至關重要。
我猜想,另一種方法是將值作爲varchar()存儲在Mysql中,該值將保留數字,但會丟失Mysql中的算術運算符功能。
第三個醜陋的替代方法是使用Decimal(10,6),然後使用一個額外的字段來存儲我正在使用的精度,這樣我就可以正確地轉換成我的C++實例。如果沒有更好的解決方案,我可能不得不採用這種醜陋的方法。
任何人都對我如何處理這些要求有很好的建議?
你總結了3;如果你是一個必須實現它的人,我認爲這取決於你想要代碼有多複雜。如果你使用數字來計算sig figs,那麼我可能會選擇#3。但那只是我的個人意見。 – Crontab
您已經正確分析了這些選項。沒有其他人。選一個。 #3對我來說最好。 –