【问题标题】:C++ Equivalent of %ld in Java for String.format()用于 String.format() 的 Java 中 %ld 的 C++ 等效项
【发布时间】:2010-01-06 08:39:41
【问题描述】:

例如,C++ 中的 %11.2lf 在 Java 中变为 %11.2f。 长格式呢?

【问题讨论】:

    标签: java string.format


    【解决方案1】:

    您可能已经知道,没有必要指定l 标志。根据the docs,十进制整数由d 指定,就像在C++ 中一样。所以答案就是%d

    【讨论】:

    • 如果您尝试打印的值很长,%d 将不够用。在这种情况下,您必须对其进行解析。
    • @Milli:虽然我不确定第一句话(不要认为签名是一个考虑因素),但我只是通过实验确认 %d 将正确格式化 longs!
    • 你是对的!我的坏..我在同一个语句中也有字符串 long.. 错误是由 %d %d 引起的,而它应该是 %d %s。谢谢安杰!
    • @CarlSmotricz 是正确的,签名与它无关。我清理了问题以删除它。
    • String.format() 将在运行时抛出 java.util.UnknownFormatConversionException 如果您使用带有 'd' 标志的 'l' 标志(例如 %ld)(在 Java 7 上演示)。跨度>
    【解决方案2】:

    使用%d 表示小数(long、int)。它工作正常。例如:

    System.err.println(String.format("%d", 193874120937489387L));
    

    ...会打印得很好。阅读java.util.Formatter了解更多详情。 %d 会占用long,没问题。

    【讨论】:

    • 完美运行!!
    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2010-09-22
    • 1970-01-01
    相关资源
    最近更新 更多