指定在C#十進制精度,decimal
型「記住」原來的號碼的精度:SQL:由用戶
decimal.Parse("090,12300").ToString() == "90,12300"
decimal.Parse("090,123").ToString() == "90,123"
decimal.Parse("090,0").ToString() == "90,0"
decimal.Parse("90").ToString() == "90"
出於商業考慮,(*),這個精度對我們來說是很重要的,所以我們要在數據庫(SqlServer)中堅持這一點。是否有一個與c#decimal
相同的SQL數據類型(除了varchar)?
(*)用戶希望看到在應用程序中輸入的確切數字。例如:有些尺度比其他尺度更精確。這意味着在這種情況下,12.5有另一種意思而不是12.50。
就值而言,第一位和第二位小數與第三位和第四位小數完全相同。您可以根據需要在小數點末尾附加多個0,但值不會更改。你還想堅持0的原因是什麼?分隔符之後的可能位置總數是'scale'(不是精度,它是包含比例的位數的總數),在Sql Server中爲列指定。請參閱[十進制和數字](https://msdn.microsoft.com/en-us/library/ms187746.aspx)。 – Igor
澄清我的情況。 – Lodewijk
varchar是唯一可以執行此操作的數據類型。數字/小數類型(它們是相同的)不會保留輸入的小數位數。另一種選擇是將值保存爲十進制/數字,併爲精度設置另一列。 –