Математическая функция для преобразования цифр в Android — Kotlin

#android #kotlin #math #floor #ceil

Вопрос:

Я надеюсь на следующие результаты :

Если входные данные => 25,69 — результат должен быть 25,6

Если вход => -0.40 — результат должен быть -0.4

Если вход => -0.004 — результат должен быть 0 или 0.0

Чтобы достичь этого, я попытался, как показано ниже :

 current=25.69
Log.e(">>> ceil ",">>> " Math.ceil(current))
Log.e(">>> round ",">>> " Math.round(current))
Log.e(">>> floor ",">>> " Math.floor(current))
 

Но выход пришел как :

ceil: >>>>>> 26.0 раунд: >>>>>>>>>>>>>>> 26 пол: >>>>>>>>>>>>>>>>>>>>>>>> 25.0

Как я могу получить 25,6 ?

Ответ №1:

Я рекомендую использовать BigDecimal для сложных округлений:

 double current = 25.69;
double truncatedDouble = BigDecimal.valueOf(current).setScale(1, RoundingMode.DOWN).doubleValue();
System.out.println(truncatedDouble);
 

С принтами

 25.6