2014-11-05 175 views
-5

我正在試圖在Visual Studio 2012中製作的程序中保留一個正在運行的小物品訂單小計。我已經部分工作。但是,當我嘗試編寫代碼來完成稅收,然後再編入新的代碼時,某些內容不起作用。這是我到目前爲止。對不起,我將擁有所有代碼的副本,但它在不同的機器上連接到互聯網時出現問題。 在按鈕按下時(三個變量已經聲明:分類彙總,稅收,總;每次用戶訂單新的東西,大部被更新。)計算稅額

tax = 0.02 * subtotal 
total = subtotal + tax 
... 

現在它只是給我的小計和稅收爲0總計與小計相同。 我有變量聲明爲整數。 爲什麼不是稅收工作? 我使用Visual Basic ...

+0

你在用什麼語言? 「Visual Studio 2012」不是一種編程語言。您需要發佈[MCVE](http://stackoverflow.com/help/mcve)。 – ElGavilan 2014-11-05 16:19:05

+0

*整數*不能包含小數。 VB.Net將允許賦值爲雙精度(0.02),但適用舍入。使用更適當的類型,例如* Decimal *。 – 2014-11-05 16:22:28

+0

沒關係認爲這可能是問題...我還是有點新... – 2014-11-05 16:23:40

回答

0

如果您的變量聲明爲intInteger(代碼如下VB.NET),那麼浮點結果將得到四捨五入到最接近的整數值 - 整型只能容納整數值,而不是分數。您需要使用SingleDouble來存儲小數值。閱讀數據類型的documentation以瞭解差異。

如果您正在執行財務計算,請使用Decimal數據類型 - SingleDouble用於科學計算,但它們不適合以任意精度表示精確的小數值。對於財務計算,如果您需要精確的精確小數值,則Decimal是正確的類型。

我們不知道subtotal的值,但如果它很小,則將其乘以0.02將使其變爲0

您應該使用調試器來瀏覽您的程序並查看變量的狀態。

+0

謝謝你...現在工作! – 2014-11-05 17:14:06

+0

@SaraSelf我很高興它解決了。如果有幫助,你能接受這個答案嗎? – xxbbcc 2014-11-05 17:15:00

+0

如何將文本格式設置爲貨幣? – 2014-11-05 17:15:15