用于 String.format() 的 Java 中 %ld 的 C++ 等效项
Posted
技术标签:
【中文标题】用于 String.format() 的 Java 中 %ld 的 C++ 等效项【英文标题】:C++ Equivalent of %ld in Java for String.format() 【发布时间】:2010-01-06 08:39:41 【问题描述】:例如,C++ 中的 %11.2lf
在 Java 中变为 %11.2f
。
长格式呢?
【问题讨论】:
【参考方案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
,没问题。
【讨论】:
完美运行!!以上是关于用于 String.format() 的 Java 中 %ld 的 C++ 等效项的主要内容,如果未能解决你的问题,请参考以下文章