kotlin-multiplatform-bignum icon indicating copy to clipboard operation
kotlin-multiplatform-bignum copied to clipboard

incorrect values for % operator on negative numbers

Open sergeych opened this issue 10 months ago • 1 comments

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())
    }
}

sergeych avatar Apr 02 '24 15:04 sergeych

Thanks for reporting!

ionspin avatar Apr 02 '24 21:04 ionspin