Java'da, double'ı tam sayıya dönüştürmek istiyorum, bunu yaparsan biliyorum:
double x = 1.5;
int y = (int)x;
y = 1 olsun. Eğer bunu yaparsan:
int y = (int)Math.round(x);
Muhtemelen 2 elde edeceksiniz. Ancak, merak ediyorum: tamsayıların çift temsilleri bazen 1.9999999998 gibi göründüğünden, Math.round () aracılığıyla oluşturulan bir çiftin dönüştürülmesinin yine de kesilmiş bir aşağı sayı ile sonuçlanma olasılığı var mı? aradığımız yuvarlatılmış sayıdan (yani: gösterilen kodda 2 yerine 1)?
(ve evet, bunu şu şekilde kastediyorum: x için herhangi bir değer var mı , burada y, x'in yuvarlatılmış bir temsilinden ziyade kesilmiş bir sonuç gösterecek mi?)
Eğer öyleyse: Kesilme riskini göze almadan yuvarlatılmış bir int'e çift yapmanın daha iyi bir yolu var mı?
Bir şey buldum: Math.round (x), bir çift değil, bir uzun döndürür. Dolayısıyla: Math.round () 'un 3.9999998 gibi görünen bir sayı döndürmesi imkansızdır. Bu nedenle, int (Math.round ()) hiçbir zaman hiçbir şeyi kısaltmak zorunda kalmayacak ve her zaman çalışacaktır.