Em Java, quero converter um duplo em um inteiro, sei se você fizer isso:
double x = 1.5;
int y = (int)x;
você obtém y = 1. Se você fizer isto:
int y = (int)Math.round(x);
Você provavelmente obterá 2. No entanto, estou me perguntando: já que as representações duplas de inteiros às vezes se parecem com 1.9999999998 ou algo assim, existe a possibilidade de que converter um duplo criado por meio de Math.round () ainda resulte em um número truncado para baixo, do que o número arredondado que procuramos (ou seja: 1 em vez de 2 no código conforme representado)?
(e sim, quero dizer isso da seguinte forma: existe algum valor para x, onde y mostrará um resultado truncado em vez de uma representação arredondada de x?)
Em caso afirmativo: Existe uma maneira melhor de transformar um duplo em um inteiro arredondado sem correr o risco de truncamento?
Imaginei algo: Math.round (x) retorna um longo, não um duplo. Portanto: é impossível para Math.round () retornar um número parecido com 3,9999999. Portanto, int (Math.round ()) nunca precisará truncar nada e sempre funcionará.