Dans le programme suivant
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);
}
}
La sortie est
123.456trueA 12365
Quelqu'un peut-il expliquer comment une double valeur (c'est-à-dire 123.456
) est converti en booléen (c'est-à-dire. true
)
La raison pour laquelle je pose la question est parce que je sais Java ne permet pas d'utiliser des nombres pour les valeurs booléennes. Par exemple, ce qui suit n'est pas autorisé en Java
if (5) {
//do something
}
Merci
pour "% b": Si l'argument arg est nul, alors le résultat est "faux". Si arg est un booléen ou un booléen, le résultat est la chaîne renvoyée par String.valueOf (). Sinon, le résultat est "vrai".
Documentation API semble indiquer clairement pourquoi.
Si l'argument arg est nul, le résultat est "faux". Si arg est un booléen ou un booléen, le résultat est la chaîne renvoyée par String.valueOf (). Sinon, le résultat est "vrai".
Parce que la valeur est de type double
et c'est ainsi que le %b
Le convertisseur fonctionne avec des valeurs de ce type.