我一直在尝试将值转换为小数,例如RM108.00。我用过
  方法value = String.format("%.2f", curProduct.price);可行,
  但是当我想
  应用value * ShoppingCartActivity.getProductQuantity(curProduct),它说
  operator * cannot applied to java.lang.string。我该如何解决
  问题?我应如何将总价变成小数点后两位?

  item.productPrice = (TextView) convertView
                .findViewById(R.id.textViewTotal);

  value = String.format("%.2f", curProduct.price);

    if (mShowPrice) {
        item.productPrice.setText("Total Price: " +
  String.valueOf(curProduct.price *
  ShoppingCartActivity.getProductQuantity(curProduct)));
    } else{
        item.productPrice.setText("RM" + String.valueOf(value));
    }

最佳答案

这意味着以下两个方法之一是字符串,而不是数字:


curProduct.price
ShoppingCartActivity.getProductQuantity(curProduct)


您可以使用以下代码将它们转换为整数(如果有小数,则将其转换为浮点数):


Integer.parseInt(curProduct.price);
Float.parseFloat(curProduct.price);


还可能需要查看这些值的定义位置,并确保尽可能使用整数/浮点数,因为转换可能会花费一些时间。整数应始终用于整数(如果它们不是很大),而浮点数或双精度数应用于十进制数。除非您确切知道自己在做什么,否则不要在数字上使用字符串!

08-16 13:10