[英]Printf: differences in Java's and C's implementation
我今天注意到我不能使用*
将宽度或精度参数传递给Java的printf
实现。
也就是说, printf
的以下参数在C中有效,但不是Java:
"%*d", 10, 3
"%-*d", 10, 3
"%0*d", 10, 3
"%*.5f", 11, 1.0/9
"%-11.*f", 5, 1.0/9
"%0*.*f", 11, 5, 1.0/9
我应该注意其他任何实现差异吗?
我不认为它是差异。 我只是仔细阅读Java文档并完全从中完成。 从差异角度思考可能会导致事情在网络中滑落。
换句话说,我将相似性视为巧合,并假设两者是不同的,直到证明不然:)
最近有一个不同之处:当用%g打印浮点数(自动选择%e或%f)时,精度标志是不同的:
Java: precision =
"number of fractional digits after the decimal point" (%f, %e)
"total number of digits in the resulting magnitude after rounding" (%g %G)
C: precision =
"number of fractional digits after the decimal point" (%f %e )
"maximum number of significant digits" (%g %G)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.