格式化程序转换 - 为啥以下代码的结果 = “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 而不是falsetrue 是任何 Number 的默认值吗?

【问题讨论】:

【参考方案1】:

见Formatter:

'b', 'B' - 如果参数 arg 为 null,则结果为 "false"。如果 arg 是 boolean 或 Boolean,则结果是 String.valueOf(arg) 返回的字符串。 否则,结果为“真”

那么 “false”的等价物是什么? - nullfalseBoolean.FALSE.

【讨论】:

谢谢@OldCurmudgeon,你觉得这个问题太糟糕了?我不知道为什么投反对票... 是的,我也是这么说的,我只是征求你的意见:) @Tarik - 您的反对意见可能是因为在谷歌上进行了几秒钟的研究就可以找到您问题的答案。

以上是关于格式化程序转换 - 为啥以下代码的结果 = “true”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥视频重命名以后文件格式不支持

以下Java代码执行结果是啥,请详细分析为啥?

在Dev c里运行成功并输出结果的 却在vs2010里不显示结果是为啥?

为啥这个转换的结果不是左值?

为啥我从 gif 文件转换的 jpg 文件不清晰?

谁能告诉为啥以下两个代码之间的结果不同? [复制]