【问题标题】:How can I assign a boolean to a double variable?如何将布尔值分配给双变量?
【发布时间】:2016-04-21 09:33:38
【问题描述】:

如果税区为空,则机上销售、机上服务和预订是免税的。我正在尝试用java务实地写这个。我将船上销售、船上服务、预购声明为double 数据类型的三个字段。如何将boolean 值分配给这些参数是否免税。

我想对这 3 个参数使用 applyTax boolean 方法。我是这样写的:

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;
}

【问题讨论】:

  • 你不能在 Java 中做到这一点
  • 从逻辑上讲,如果您在代码中的任何位置进行乘法运算,1 的值会不会像免税一样?
  • 我不会做任何乘法或任何运算。我只想将它们指定为免税与否。
  • 为什么 applyTax() 返回一个布尔值?
  • @punit1337 那么为什么他们首先是double而不是boolean

标签: java boolean assign


【解决方案1】:

Java 是一种静态类型的语言,这意味着每个字段的类型和参数在编译时都是已知的,因此您不能将boolean 放在double 中。

您可以声明一个Object,您可以为其分配BooleanDouble

无论哪种方式,我都不鼓励这样做——如果你需要这样做的话,至少你的代码中有一种设计味道。

【讨论】:

    【解决方案2】:

    在 Java 中,变量的数据类型是 double 或 boolean。这给你留下了两个选择:你可以像这样声明一个额外的变量:

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

    或者您可以使用有效的双精度值(例如 -1)来表示“免税”。这要求所选值在您的上下文中无效。

    【讨论】:

    • 这行得通吗? if (taxArea.isEmpty()) { onboardSalePct = onboardServicePct = preorderSalePct = applyTax(false); }
    【解决方案3】:

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

    // 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;
    }
    

    【讨论】:

    • 我不想在我的代码中计算任何东西。我将我的 onboardSales 等更改为布尔值并将它们设置为免税。
    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 2013-07-16
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2013-02-17
    相关资源
    最近更新 更多