#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