我有一个项目,其中我必须创建一个具有多个选项的购物车,例如向购物车添加一定数量的商品。除非用户提示输入购物车总数,否则一切正常。它会输出一个疯狂的数字,例如$15.9614.9500000000000000013.0。
这是用于打印总数的代码。所有值都是 double 值。有什么帮助吗?
System.out.println("Your total comes to $" +
(dynamicRope * dynamicRopeCost) +
(staticRope * staticRopeCost) +
(webbing * webbingCost));
最佳答案
由于您正在处理购物车中的值,并且 double
仅在一定程度上精确,因此我建议您使用 BigDecimal
,因为它们提供了数字的精确表示。 double 的不精确是导致控制台输出不正确的原因。
import java.math.BigDecimal;
BigDecimal dynamicRope = new BigDecimal("4"); // example value of 4
BigDecimal dynamicRopeCost = new BigDecimal("5.50"); // example value of 5.50
// Initialize the other variables as BigDecimal's here
System.out.println("Your total comes to $" +
dynamicRope.multiply(dynamicRopeCost)
.add(staticRope.multiply(staticRopeCost))
.add(webbing.multiply(webbingCost)));
关于java - 在乘法中使用 double (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29157314/