【问题标题】:Java formatted converting double to StringJava格式化将double转换为String
【发布时间】: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


【解决方案1】:

indPay 是一个 double 并且您正试图在其中存储一个字符串; 试试String str = myFormat.format(indPayment[q]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    相关资源
    最近更新 更多