Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 科特林有吗';s自己的函数,用于在数字大于零时向上舍入,但在数字小于零时向下舍入?_Kotlin_Rounding_Built In - Fatal编程技术网

Kotlin 科特林有吗';s自己的函数,用于在数字大于零时向上舍入,但在数字小于零时向下舍入?

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中复制这一

我刚刚发现了一个关于Java的类似问题。这个问题和那个问题完全一样,除了关于科特林的问题。这意味着我不想引用任何Java代码,我想知道原生Kotlin

是否有一个函数总是向上取整,但相对于零。本质上是一个舍入函数,它总是从零开始舍入。如果你愿意的话,我是ceil的表亲。例如

\\ 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),但它看起来有点笨拙。