kotlin-multiplatform-bignum
kotlin-multiplatform-bignum copied to clipboard
incorrect values for % operator on negative numbers
assertEquals("${-15.5 % 360.0}", ((-15.5).bd % 360.bd).toStringExpanded())
fails:
Expected :-15.5
Actual :-0.155
- was like this at least on JVM.
Full test cor convenience:
import com.ionspin.kotlin.bignum.decimal.BigDecimal
import kotlin.test.Test
import kotlin.test.assertEquals
val Double.bd get() = BigDecimal.fromDouble(this)
class BdtoolsTest {
@Test
fun testMod2() {
// OK
assertEquals("15.5", ((360.bd * 5 + 15.5.bd) % 360.bd).toStringExpanded())
// NG
assertEquals("${-15.5 % 360.0}", ((-15.5).bd % 360.bd).toStringExpanded())
}
}
Thanks for reporting!