Java 将字符串乘以双精度

Java 将字符串乘以双精度,java,string,binary,double,Java,String,Binary,Double,我有这样的代码: double priceMulti = 1.2; double price = Double.parseDouble(jTextField1.getText()); double date = 1980; double random = Math.random()*20; jLabel28.setText(priceMulti*String.valueOf(price)*date*random); 根据设置文本,我得到了一个错误“二进制运算符的操作数类型错

我有这样的代码:

double priceMulti = 1.2;
    double price = Double.parseDouble(jTextField1.getText());
  double date = 1980;
  double random = Math.random()*20;
  jLabel28.setText(priceMulti*String.valueOf(price)*date*random);
根据设置文本,我得到了一个错误“二进制运算符的操作数类型错误”*“ 所以我什么都不能做。
编辑:主要问题已经解决了,但现在我想使用BigDecimal,而不是double,因为它们类似于1.000012,我不知道如何使用。

在Java中不能用字符串乘以double。您应该将所有的双精度乘法,然后将其转换为字符串,将结果值设置为标签文本

您正在尝试将
字符串
值与
双精度
值相乘。算术运算符不处理字符串值。您需要将所有的双精度乘法,然后获取它的字符串值,将其设置为
jLabel28

jLabel28.setText(String.valueOf(priceMulti * price * date * random));

将所有值相乘,然后将其转换为字符串<代码>字符串.valueOf(priceMulti*价格*日期*随机)不要将浮点用于货币。使用
BigDecimal.
你正在进入一个痛苦的世界,错误的答案,不平衡的书籍,审计失败,返工。。。第一次就把它做好。EJP,你说得对。我应该使用BigDecimal,因为double类似于1.12112342134214,但我不知道如何使用。