Преобразовать функцию php в kotlin

Как преобразовать эту функцию php в kotlin?

function round_up($number, $precision = 2)
{
    $fig = pow(10, $precision);
    return (ceil($number * $fig) / $fig);
}

Я пытаюсь сделать это, но не работает

 fun round_up(number: Float, precision = 2){
    val fig = pow(10,precision)
    return (ceil(number * fig) / fig)
 }

Ожидаемое использование:

    val currentFloatValue = 1.568
    val finalValue = round_up(currentFloatValue)
    // result should be
    // 1.57

Вы не можете точно представить десятичное число 1,57 в двоичном виде. Сам ваш подход ошибочен, поэтому вам нужен десятичный тип, если вы хотите округлить до десятичных знаков. Или, что еще лучше, вы не округляете, пока не преобразуете число в текст, где вы делаете это неявно через спецификацию формата. Кстати: «не работает» — бесполезное описание проблемы, см. Как спросить.

Ulrich Eckhardt 27.02.2019 22:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
172
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это было почти правильно:

  • Используйте Double, а не Float, потому что это число с плавающей запятой по умолчанию в Kotlin.
  • Определите тип параметра precision, например. Интерн.
  • Определите тип возвращаемого значения, например. Двойной
fun round_up(number: Double, precision: Int = 2): Double {
    val fig = pow(10.0, precision.toDouble())
    return ceil(number * fig) / fig
}

Другие вопросы по теме