将php函数转换为kotlin

将php函数转换为kotlin,php,kotlin,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(nu

如何将此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
这几乎是正确的:

  • 使用
    Double
    而不是
    Float
    ,因为这是Kotlin中的默认浮点数
  • 定义
    精度
    参数的类型,例如Int
  • 定义返回类型,例如Double
这几乎是正确的:

  • 使用
    Double
    而不是
    Float
    ,因为这是Kotlin中的默认浮点数
  • 定义
    精度
    参数的类型,例如Int
  • 定义返回类型,例如Double

你不能用二进制精确地表示十进制数1.57。您的方法本身就是有缺陷的,因此,如果您想四舍五入到小数点,则需要使用十进制类型。或者,更好的方法是,在将数字转换为文本之前不进行舍入,在文本中通过格式规范隐式地进行转换。顺便说一句:“不工作”不是一个有用的问题描述,请参阅。十进制数1.57不能完全用二进制表示。您的方法本身就是有缺陷的,因此,如果您想四舍五入到小数点,则需要使用十进制类型。或者,更好的方法是,在将数字转换为文本之前不进行舍入,在文本中通过格式规范隐式地进行转换。顺便说一句:“不工作”不是一个有用的问题描述,请参阅。
fun round_up(number: Double, precision: Int = 2): Double {
    val fig = pow(10.0, precision.toDouble())
    return ceil(number * fig) / fig
}