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になります。

何か案は?

4

4 に答える 4

7

フィールドをdecimal(18,0)として宣言すると、小数点以下0桁の精度が必要であると言えます。1.11の値を維持するために、これらの列をdecimal(18,2)(または必要な数桁の精度)として定義する必要があります。

恐ろしい詳細については、 10進数と数値のタイプに関するMSDNページを参照してください。

于 2009-06-29T20:56:57.727 に答える
1

毎回Decimalの精度を定義します。それ以外の場合は、Decimal値ではなくint値のみを格納します。

于 2009-06-30T04:32:16.207 に答える
0

タイプdecimal(9,2)に変更してみてください

于 2009-06-29T20:56:59.723 に答える
0

たぶん、次のように列を作成してみてください

10進数(18,2)

于 2009-06-29T21:00:27.517 に答える