В следующей программе
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);
}
}
Выход
123.456trueA 12365
Может кто-то пожалуйста, объясните, как двойное значение (т. е. 123.456
) преобразуется в логическое значение (т. е. "истина")
Причина, по которой я спрашиваю это потому, что я знаю, что Java не позволяет цифры будут использованы для булевых значений. Например, не допускается в Java
if (5) {
//do something
}
Спасибо
для " ПО%в” : если аргумент ARG является нуль, то результатом является "ложные" по. Если ARG является boolean или boolean, то результатом является строка, возвращаемая строка.метод valueOf(). В противном случае, результатом является "Правда и".
В документации API, кажется, ясно, почему.
если аргумент ARG является нуль, то результатом является "ложные" по. Если ARG является boolean или boolean, то результатом является строка, возвращаемая строка.метод valueOf(). В противном случае, результатом является "Правда и".
Потому что значение имеет тип double
и это, как %B
и конвертер работает со значениями этого типа.