繁体   English   中英

Printf:Java和C实现的差异

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM