Kotlin 科特林有吗';s自己的函数,用于在数字大于零时向上舍入,但在数字小于零时向下舍入?
我刚刚发现了一个关于Java的类似问题。这个问题和那个问题完全一样,除了关于科特林的问题。这意味着我不想引用任何Java代码,我想知道原生Kotlin 是否有一个函数总是向上取整,但相对于零。本质上是一个舍入函数,它总是从零开始舍入。如果你愿意的话,我是ceil的表亲。例如Kotlin 科特林有吗';s自己的函数,用于在数字大于零时向上舍入,但在数字小于零时向下舍入?,kotlin,rounding,built-in,Kotlin,Rounding,Built In,我刚刚发现了一个关于Java的类似问题。这个问题和那个问题完全一样,除了关于科特林的问题。这意味着我不想引用任何Java代码,我想知道原生Kotlin 是否有一个函数总是向上取整,但相对于零。本质上是一个舍入函数,它总是从零开始舍入。如果你愿意的话,我是ceil的表亲。例如 \\ Ceil does this someRoundFun(0.04) 1 \\ And floor does this someRoundFun(-0.04) 1 我想知道是否有一个内置函数可以在Kotlin中复制这一
\\ Ceil does this
someRoundFun(0.04)
1
\\ And floor does this
someRoundFun(-0.04)
1
我想知道是否有一个内置函数可以在Kotlin中复制这一点。我知道如何编程一个自己,我只是想知道是否有一个内置的(优雅)。它可能看起来像这样
fun round(num: Double) == if (num > 0) ceil(num) else floor(num)
Kotlin在它的Kotlin.math库中有,但它舍入到下一个整数
kotlin.math在kotlin stdlib中,因此我假设它符合您对本机kotlin的要求。如果有,它将在
kotlin.math中,所以没有。这与您描述的正好相反:truncate()
@AlexeyRomanov不会-truncate(-num)
给出与truncate(num)
完全相同的结果?我不知道它会如何产生零语义。@MarkDickinson不知道我在想什么,谢谢。我已经知道ceil了。但我认为它会接近0<代码>ceil(-0.04)
等于0,是吗?这不是我想要的。是的,我从文档中找到了一段引文。“将给定的值x向正无穷大舍入为整数。”如果值为负,我也希望它向负无穷大舍入。有一个函数“fun Double.withSign(sign:Double):Double”,因此您可以执行如下操作:ceil(num.absoluteValue)。withSign(num),但它看起来有点笨拙。