2012-11-25 85 views
0

我有一個包含月薪的radnumeric文本框,如下所示。 txtMonthlySalary.Text = 816177200 現在我需要計算年薪,並將其保存爲sql服務器表中的浮點變量。我的表已經是現有表,而年薪表字段是float類型。浮點數據類型問題

上年薪實際計算給出以下結果: 年薪= 816177200 * 12 = 9794126400

但是在節目中, 浮子Fld_AnnualSalary = float.Parse(txtMonthlySalary.Text)* 12; 給出結果爲9,794,127,000

這裏float數據類型將看起來的結果舍入,這與實際的預期結果有很大的差異。 我該如何處理這個問題,以便我可以在不捨入的情況下獲得乘法的精確結果,並將其保存在SQL服務器表中的浮點變量中。

回答

4

float甚至double通常不可接受的數據類型與真實貨幣值一起使用(就像您剛剛證明的那樣)。

請在代碼中使用Decimal並在SQL中使用相應的類型。

0

A float的精度限制在七位數左右,並且您試圖對九位數字816177200進行計算。

Alexeis Levenkov的anwer包含解決您的問題。數據類型Decimal可以保存至少28位有效數字。