Я пишу программу, которая принимает число и удаляет завершающие нули, если число является целым числом. Я использую троичный оператор, но он не работает, как ожидалось. Но если я напишу это как выражение if else, оно будет работать.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double number = scanner.nextDouble();
System.out.println(((int)number == (double)number) ? (int)number : number); // Always outputs a double
if ((int)number == (double)number) { // Outputs correct result
System.out.println((int)number);
}
else {
System.out.println(number);
}
}
}
Например, если я введу 5, я получу
5.0
5
, если я введу 7.3, я получу
7.3
7.3
Похоже, что он работает для оператора if else, но не для троичного оператора.