在SQL Server中,我們可以寫入數據AS Numeric(15,10)
..在C#中相當於什麼?什麼是C#中的SQL Server的數字的等效數據類型
我知道Numeric
的等價物是Decimal
但是如何表示Numeric(15,10)
?
在SQL Server中,我們可以寫入數據AS Numeric(15,10)
..在C#中相當於什麼?什麼是C#中的SQL Server的數字的等效數據類型
我知道Numeric
的等價物是Decimal
但是如何表示Numeric(15,10)
?
沒有一個直接的等價物,因爲沒有內建的.NET類型,可以根據我的意識明確地指定精度/標度。沒有固定像NUMERIC點類型。
decimal
和double
是在.NET公共浮點類型,與實施decimal
decimal floating point(如在T-SQL NUMERIC)和double
實施binary floating point行爲(如在T-SQL FLOAT和REAL)。 (有float
爲好,這是一個較小的二進制浮點型。)
你應該根據什麼樣的價值觀你要代表decimal
和double
之間做出選擇 - 我通常認爲的「人禍」,人工值(特別是貨幣)適用於decimal
,以及適用於double
的連續自然值(如物理尺寸)。
這些區別也適用於SQL服務器類型 - 'numeric' /'decimal'是十進制浮點類型,'float'和'real'是二進制浮點數,所以你應該匹配像喜歡。 –
@Damien:謝謝,會編輯。 –
嘗試查看this site作爲數據類型映射的指南。至於精確度和長度,您可以控制自己使用format specifiers
有取決於兩個問題兩種答案:
1)什麼的東西,可以讓你指定精度和範圍。沒有。這似乎是你的問題,但以防萬一:
2)什麼的東西,可以讓你指定一個十進制浮點數正是。這實際上是十進制類型 - 但是這個點是內部的,並且根據輸入數字被設置爲2^32個位置中的一個。不知道爲什麼,但只有28個值的工作,或2^5 - 4 ..
因此,即使.Net允許十進制看起來像一個浮動,它是非常不同的,並且與SQLServer的十進制匹配。任何不是2值的不同冪和的總和是使用正常二進制浮點的估計。這意味着甚至像0.1這樣的東西已經失去了精確性。但與十進制類型不同。
那麼'Decimal'應該足夠好 – V4Vendetta