格式化程序转换 - 为啥以下代码的结果 = “true”?
Posted
技术标签:
【中文标题】格式化程序转换 - 为啥以下代码的结果 = “true”?【英文标题】:Formatter conversion - Why does the following code's result = "true"?格式化程序转换 - 为什么以下代码的结果 = “true”? 【发布时间】:2014-11-06 17:20:50 【问题描述】:执行此代码时,我总是得到true
作为结果:
public class TestDeclare
public static void main(String[] args)
double var = 34; // any other litteral is valid
System.out.printf("%b ", var);
为什么我收到的是true
而不是false
? true
是任何 Number
的默认值吗?
【问题讨论】:
【参考方案1】:见Formatter:
'b', 'B' - 如果参数 arg 为 null,则结果为 "false"。如果 arg 是 boolean 或 Boolean,则结果是 String.valueOf(arg) 返回的字符串。 否则,结果为“真”。
那么 “false”的等价物是什么? - null 或 false
或 Boolean.FALSE
.
【讨论】:
谢谢@OldCurmudgeon,你觉得这个问题太糟糕了?我不知道为什么投反对票... 是的,我也是这么说的,我只是征求你的意见:) @Tarik - 您的反对意见可能是因为在谷歌上进行了几秒钟的研究就可以找到您问题的答案。以上是关于格式化程序转换 - 为啥以下代码的结果 = “true”?的主要内容,如果未能解决你的问题,请参考以下文章