В Java я хочу преобразовать двойное число в целое число, я знаю, если вы это сделаете:
double x = 1.5;
int y = (int)x;
вы получите y = 1. Если вы сделаете это:
int y = (int)Math.round(x);
Скорее всего, вы получите 2. Однако мне интересно: поскольку двойные представления целых чисел иногда выглядят как 1.9999999998 или что-то в этом роде, существует ли вероятность того, что приведение двойника, созданного с помощью Math.round (), все равно приведет к сокращенному числу, скорее чем округленное число, которое мы ищем (например: 1 вместо 2 в представленном коде)?
(и да, я имею в виду именно это: есть ли какое- либо значение для x, где y покажет результат, который является усеченным, а не округленным представлением x?)
Если да: есть ли лучший способ превратить double в округленное целое число без риска усечения?
Прикинул что-то: Math.round (x) возвращает длинный, а не двойной. Следовательно: Math.round () не может вернуть число вида 3.9999998. Следовательно, int (Math.round ()) никогда не потребуется что-либо усекать, и он всегда будет работать.