2016-04-21 122 views
-3

如果税务区域为空,那么在船上的销售,船上服务和预购都是免税的。我正在尝试在java中实际写这个。我在船上的销售,船上服务,预订三个字段都是double数据类型。如何将boolean值指定为免税或不免税的参数。如何将一个布尔值赋给一个双变量?

我想为这3个参数使用applyTaxboolean方法。我写这样的:

public double onboardSales; 
public double onboardServices; 
public double preorderSales; 

public void methodName() { 

if(taxArea.isEmpty()) { 

//onboardSales is tax free; 
//onboardServices is tax free; 
//preorderSales is tax free; 

    } 

} 

public boolean applyTax(boolean b){ 
return b; 
} 
+0

你不能在Java中 –

+0

逻辑做到这一点,也不会转回去值'1'是免费的类似税收,如果你在你的代码中的任何一点做乘法? – SomeJavaGuy

+0

我不打算做任何乘法或任何操作。我只是想将它们分配为免税或不免税。 – punit1337

回答

0

Java是一种静态类型语言,这意味着每个字段的类型和参数是在编译时已知,所以你不能把一个booleandouble

您可以做的是声明一个Object,您可以将其分配给BooleanDouble。无论哪种方式,我都不鼓励这样做 - 如果您需要这样做,至少在您的代码中存在设计气味。

+1

downvoter请澄清他的意图。 – Timmos

0

在Java中,变量的数据类型是double或boolean。这使得你有两个选项:您可以声明一个额外的变量这样的:

public boolean taxFree; 
public double onboardSales; 
public double onboardServices; 
public double preorderSales; 

或者你可以使用一个有效的双值(例如-1)表示“税游离度”。这就要求,所选的值在您的上下文中无效。

+0

这个工作吗? if(taxArea.isEmpty()){onboardSalePct = onboardServicePct = preorderSalePct = applyTax(false); } – punit1337

0

您也必须为纳税创建一个变量。该示例仅显示板载销售。

// total value of onboard sales 
public double onboardSales; 
// percentage stored as double. E.g. 0.75 = 75% 
public double onboardSalesTax; 

public boolean applyTax(String tax){ 
    if ((tax == null) || (tax.trim().equals("")) 
     onboardSalesTax = 0; 
    else 
     // maybe you need a better parser here, that computes integers to double 
     // e.g. 75 to 0.75 
     onboardSalesTax = Double.parseDouble(tax); 
} 

// computes the absolute value of the tax 
public boolean computeOnBoardSalesTaxAmount() 
{ 
    return onboardSales * onboardSalesTax; 
} 
+0

我不想在我的代码中计算任何东西。我改变了我的onSalesSales等布尔值并将它们设置为免税。 – punit1337

相关问题