【问题标题】:Operator += for Double in java运算符 += 用于 Java 中的 Double
【发布时间】:2012-09-03 05:01:00
【问题描述】:

我有这样的语法:

Double rowIDR += (((Double)view.getTableRaw().getModel().getValueAt(d,4)));

但是操作符+=不能工作,那么与Double匹配但功能类似+=的操作符是什么?

【问题讨论】:

  • 您到底想完成什么?您是否要声明和分配某些内容?还是您想向rowIDR 添加一些内容?
  • 我想调用coloumn rowIDR中的表列表..
  • 你总是可以使用简单的赋值 rowIDR = rowIDR + 一些大语句
  • double 更合适时,不要使用Double。将Double+= 一起使用会导致每次都创建一个对象,效率不高。

标签: java double operator-keyword


【解决方案1】:

当你写以下内容时:

Double rowIDR += (((Double)view.getTableRaw().getModel().getValueAt(d,4)));

你正在添加到rowIDR 没有初始化它

你可以试试这个:

Double rowIDR = 0d; 
rowIDR+= (((Double)view.getTableRaw().getModel().getValueAt(d,4)));

【讨论】:

  • 该声明中'0d'的作用是什么?
  • 只是代表Floating point literals的一种方式
  • 双排IDR = 0d; rowIDR+= view.getTableRaw().getModel().getValueAt(d,4);当我使用它时,它会导致错误“无法投射”..
  • 离开它;使用Double rowIDR = 0d; rowIDR+= (((Double)view.getTableRaw().getModel().getValueAt(d,4)));
  • 实际上我想在 jasper 报告中显示值,当我在字符串中使用 += 时,数据从第一行显示到最后一行,但是当我以双精度和大十进制使用时,只是已显示的最后一行..
【解决方案2】:

每个局部变量都必须赋值才能使用。所以当我们写

Int a+=3;

相当于-:

Int a=a+3;

所以你使用的是局部变量 a 而没有初始化它。所以如果你这样写

Int a=0;
a+=3;

它会起作用的。

【讨论】:

  • 有几件事... 首先 Int 不是关键字。 第二a+=3;等价于a=(int)(a+3);
【解决方案3】:
public static void main(String[] args){
    double a = 1.0;
    Double b = new Double(1.1), c;
    b += 1.1;
    c += 1.1;
    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
}

b 很好,c 是错误的。 因为c没有初始化

【讨论】:

  • -1,您应该添加更多解释,而不仅仅是“这是错误的”
  • 因为c没有初始化。
【解决方案4】:

实际上这应该有效。也许您做错了什么,例如右侧的值为“0”。 ;)

编辑:没有看到初始化。这也可能是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2016-05-10
    • 2015-12-13
    相关资源
    最近更新 更多