だから、もしあなたが
CAST(field1 as decimal) field1
これにより、自動的に丸めが追加されます。
オリジナルは次のように定義されます:
field1タイプ:浮動長:8精度:53
このフィールドを10進数(二重ではなく)として生成するには、Entity Frameworkレイヤーが必要なので、10進数にキャストする必要があります。
元の精度を保持し、丸めないように、10進数としてキャストする方法はありますか?
次の理由により、キャストで精度を宣言する必要を回避したいと思います。
やってみました:
SELECT Cast( 2.555 as decimal(53,8))
これは2.55500000
を返します。それはあなたが望むものですか?
更新:
どうやらSQL_VARIANT_PROPERTYを使用して、値の精度とスケールを見つけることもできます。例:
SELECT SQL_VARIANT_PROPERTY(Cast( 2.555 as decimal(8,7)),'Precision'),
SQL_VARIANT_PROPERTY(Cast( 2.555 as decimal(8,7)),'Scale')
8|7
を返します
変換プロセスでこれを使用できる場合があります...
SELECT CAST(field1 AS DECIMAL(10,2)) field1
を試して、10,2
必要な精度で。
cast (field1 as decimal(53,8)
) field 1
デフォルトはdecimal(18,0)です。