Formatting using printf and format

70,034

Solution 1

for "%b" : If the argument arg is null, then the result is "false". If arg is a boolean or Boolean, then the result is the string returned by String.valueOf(). Otherwise, the result is "true".

reference

Solution 2

The API documentation seems to clearly state why.

If the argument arg is null, then the result is "false". If arg is a boolean or Boolean, then the result is the string returned by String.valueOf(). Otherwise, the result is "true".

Share:
70,034
ziggy
Author by

ziggy

Updated on April 13, 2020

Comments

  • ziggy
    ziggy about 4 years

    In the following program

    class ZiggyTest2 {
    
        public static void main(String[] args){     
    
            double x = 123.456;
            char c = 65;
            int i = 65;
    
            System.out.printf("%s",x);
            System.out.printf("%b",x);
            System.out.printf("%c",c);
            System.out.printf("%5.0f",x);
            System.out.printf("%d",i);
        }       
    }
    

    The output is

    123.456trueA  12365
    

    Can someone please explain how a double value (i.e. 123.456) is converted to a boolean (ie. true)

    The reason I ask is because I know java does not allow numbers to be used for boolean values. For example, the following is not allowed in Java

    if (5) {
     //do something
    }
    

    Thanks