【发布时间】:2014-01-26 22:42:14
【问题描述】:
我有这个:
double indPay;
double indPayment[];
DecimalFormat myFormat = new DecimalFormat("##.00");
但是当我这样做时:
indPay = myFormat.format(indPayment[q]);
我得到:Type mismatch. Cannot convert from String to double.
这是为什么?
编辑:有没有办法在不通过这个字符串过程的情况下格式化双精度?
【问题讨论】:
-
顺便说一句,您可能应该使用整数类型来进行支付/货币操作。
-
@Jems 如果有小数,我为什么要使用整数?
-
格式化程序将格式化,即转换为字符串。要将字符串转换为其他内容,您需要一个解析器。在这里,您将格式化结果(字符串)分配给双引用变量
-
@KickingLettuce 以确保准确性。浮点类型可能会产生不准确,并且像 0.5 + 0.5 == 1.0 这样的表达式的结果可能是错误的。
-
让你的双打作为双打,除非他们最好是
BigDecimal- 例如,如果你用它们来赚钱。切勿将钱存为double。正如 Jems 指出的那样,0.1 + 0.2 == 0.3返回 false,这往往会惹恼会计师。
标签: java string formatting double