Kotlin中,我看到函数a.mod(n),如果a为负,结果为负.这不是模应该做的.我该怎么做才能始终保持正模?

For example:

(-2).mod(9)

returns -2 and should be 7.

推荐答案

在kotlin 1.1版本中,mod被弃用,因为它计算除法的剩余部分,可以是负数.这就是为什么他们改为rem,更类似于它的功能名称.如果您想在Kotlin和大多数语言中使用模函数,可以使用以下方法:

r = (a).rem(n)
if (r < 0) r += n

Kotlin相关问答推荐

在Jetpack Compose中创建波浪式文本动画:顺序中断问题

可以从背景图像中点击图标吗?

多模块Kotlin项目中的FreeFair

相当于roomdb中的DateTime Bigint列的是什么

如何定义一个函数来接受任何具有特定字段的数据类

哪个更好? Integer.valueOf(readLine()) 或 readLine()!!.toInt()

kotlin 模式匹配如何像 scala 一样工作

为什么 Kotlin 在将协变类型参数转换为不变类型参数时会产生 Unchecked Cast 警告?

如何将jooq multiset的结果映射到Hashmap(Java Map)?

parallelStream()和asSequence().asStream().parallel()之间的区别

Jetpack BottomNavigation - java.lang.IllegalStateException:Already attached to lifecycleOwner

如何在kotlin中使用协程每秒调用一个函数

使用纯 Kotlin 函数作为 Junit5 方法源

OnClickListener 未在 ConstraintLayout 上触发

Kotlin 代码是如何编译成原生代码的?

将 @Component.Builder 与构造函数参数一起使用

(kotlin的Moshi)@Json vs@field:Json

内联 onFocusChange kotlin

Android:Exoplayer - ExtractorMediaSource 已弃用

如何将vararg作为数组传递给Kotlin中的函数?