DBに小数点以下の桁数が格納されている場合にEFが小数点以下を切り捨てない理由を説明できますか?フィールド。格納時に小数点以下2桁の小数点以下2桁の小数点以下を小数点以下2桁に置き換えない理由
格納可能な小数点以下の桁数(DBフィールドで設定された小数点以下の桁数)が格納する必要がある計算された値よりも短い場合は、小数点以下を丸めるのが常識です。
現時点では、EFは文字列のように小数点を扱い、データベーステーブルに格納するときに値を切り捨てるように見えます。
EDIT /回答:私は切り捨て無効に何かを探していた
:簡単な修正を探して、この上で苦労し、誰のために 。
public UnitOfWork(string connectionString)
{
DataContext = new DbContext(connectionString);
SqlProviderServices.TruncateDecimalsToScale = false;
}
ここで、この質問に対する答えは、正確に何を期待した:切り捨ては正常な動作です Entity Framework Code First truncating my decimals
可能な最大精度よりも正確な数値をどのように四捨五入すると思いますか? –
1.7777> 1.78小数点以下2桁を期待します。ありがとう。 – Saleh
私の個人的な理解は、環境は十進数で扱うことができません。なぜなら、それは '十進数 'として格納することができないからであり、最大個数の場所の後で切り捨てるからです。 –