2つのdecimal(18,0)フィールドを持つテーブルがあります。
このテーブルに2つの10進値を挿入しています。たとえば、1.11
(キャストなしで)テーブルから選択すると、1が得られます。
私はすべての鋭敏さを失っています、そして私は理由がわかりません。
TEST値に挿入(153、'test'、'test'、1、1、1.11、1.11)
TESTから*を選択すると、1.11,1.11ではなく1と1になります。
何か案は?
2つのdecimal(18,0)フィールドを持つテーブルがあります。
このテーブルに2つの10進値を挿入しています。たとえば、1.11
(キャストなしで)テーブルから選択すると、1が得られます。
私はすべての鋭敏さを失っています、そして私は理由がわかりません。
TEST値に挿入(153、'test'、'test'、1、1、1.11、1.11)
TESTから*を選択すると、1.11,1.11ではなく1と1になります。
何か案は?
フィールドをdecimal(18,0)として宣言すると、小数点以下0桁の精度が必要であると言えます。1.11の値を維持するために、これらの列をdecimal(18,2)(または必要な数桁の精度)として定義する必要があります。
恐ろしい詳細については、 10進数と数値のタイプに関するMSDNページを参照してください。
毎回Decimalの精度を定義します。それ以外の場合は、Decimal値ではなくint値のみを格納します。
タイプdecimal(9,2)に変更してみてください
たぶん、次のように列を作成してみてください
10進数(18,2)