0

以下のように、月給を含む radnumeric テキストボックスがあります。txtMonthlySalary.Text=816177200 ここで、年俸を計算し、それをフロート変数として SQL サーバー テーブルに保存する必要があります。私のテーブルは既に存在し、年俸フィールドはフロート型です。

年俸を実際に計算すると、次の結果が得られます: 年俸 = 816177200 * 12 = 9,794,126,400

しかし、プログラムでは float Fld_AnnualSalary = float.Parse(txtMonthlySalary.Text) * 12; 結果は 9,794,127,000 になります

ここで float データ型は結果を四捨五入しますが、これは実際に期待される結果とは大きく異なります。この問題をどのように処理すれば、丸めずに乗算で正確な結果を取得し、それを SQL サーバー テーブルの float 変数に保存できますか。

4

2 に答える 2

4

floatまたdouble、実際のお金の値を扱うのに一般的に受け入れられるデータ型ではありません (自分で証明したように)。

Decimalコードと対応する型をSQLで使用してください。

于 2012-11-25T05:56:34.023 に答える
0

floatの精度は約 7 桁に制限されており、9 桁の数値を計算しようとしています816177200

Alexeis Levenkov による回答には、問題の解決策が含まれています。Decimalデータ型は、少なくとも 28 桁の有効数字を保持できます。

于 2012-11-25T06:01:19.180 に答える