誰でもこの問題を解決できますか?C#での小数点から浮動小数点への変換の問題
私はデータベースに、Entity Frameworkが "float"として表すnull可能な "実際の"列を持っています。
システムでは10進数で計算されますが、この列に値を代入すると精度が失われます。システムは、次の変換を使用している
:
dbObject.floatCol = (float) decimalVar;
decimalVarは= 123.12341
ですがdbObject.floatColは= 123.1234
私は運のない他の方法でこのconvertionをやろうとしています。
注:データベースで
- 私は問題なく123.12341に値を更新することができます。
- 私は、.NET Frameworkを使用してのVisual Studio 2010を使用しているデータベースの列
- を変更することはできません4
EDIT:
私は(私の問題の実数で)問題をデバッグする場合私が持っている:
decimal decimalVar = new decimal(123.13561);
// decimalVar is 123.13561
float? floatVar = 0;
// floatVar is 0
floatVar = (float)decimalVar;
// floatVar is 123.135612 <- has appeared a 2 at the end
// with a different decimal number
decimalVar = new decimal(128.13561); // replaced the 123 for 128
// decimalVar is 128.13561
floatVar = (float)decimalVar;
// floatVar is 128.1356 <- has disappeared the 1 at the end
行動は本当に奇妙な
である私はPにしようとしたとき、私は正しい変換
を行うことが可能であるかどうかを知る必要があり値をコンソールまたはログファイルに書き戻します。これらは異なります。■
C#とのSQLServerの間の型マッピングで見るジョンスキートの記事を見つけることができる[ここ](https://msdn.microsoft.com/en-us/library/cc716729(V = VS.100 ).aspx) –