2014-11-05 168 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