Преобразувайте Double в Long в Java

1. Общ преглед

В този урок ще изследваме различни методи за преобразуване от двойно в дълго в Java.

2. Използване на Type Casting

Нека проверим директен начин за прехвърляне на удвояването на long с помощта на оператора за гласове:

Assert.assertEquals(9999, (long) 9999.999);

Прилагането на оператора (long) cast на двойна стойност 9999,999 води до 9999.

Това е стесняване на примитивното преобразуване, защото губим точност. Когато дубъл се хвърли на дълъг , резултатът ще остане същият, с изключение на десетичната точка.

3. Използване на Double.longValue

Сега, нека да изследват два пъти на вградения метод longValue да конвертирате двойно до дълго :

Assert.assertEquals(9999, Double.valueOf(9999.999).longValue());

Както можем да видим, прилагайки longValue метода на двойна стойност 9999.999 добиви 9999. Вътрешно, на longValue Методът се използва просто гласове .

4. Използване на математически методи

И накрая, нека видим как да преобразуваме двойно в дълго, като използваме методи за кръг, таван и под от класа Math :

Нека първо проверим Math.round. Това дава стойност, най-близка до аргумента:

Assert.assertEquals(9999, Math.round(9999.0)); Assert.assertEquals(9999, Math.round(9999.444)); Assert.assertEquals(10000, Math.round(9999.999));

Второ, математика. ceil ще даде най-малката стойност, която е по-голяма или равна на аргумента:

Assert.assertEquals(9999, Math.ceil(9999.0), 0); Assert.assertEquals(10000, Math.ceil(9999.444), 0); Assert.assertEquals(10000, Math.ceil(9999.999), 0);

От друга страна, Math.floor прави точно обратното на Math.ceil. Това връща най-голямата стойност, която е по-малка или равна на аргумента:

Assert.assertEquals(9999, Math.floor(9999.0), 0); Assert.assertEquals(9999, Math.floor(9999.444), 0); Assert.assertEquals(9999, Math.floor(9999.999), 0);

Имайте предвид, че и Math.ceil, и Math.round връщат двойна стойност, но и в двата случая върнатата стойност е еквивалентна на дълга стойност.

5. Заключение

В тази статия обсъдихме различни методи за преобразуване на двойно в дълго в Java. Препоръчително е да имате разбиране за това как всеки метод се държи, преди да го приложите към критичен за мисията код.

Пълният изходен код за този урок е достъпен на GitHub.