mkrd/Swift-BigInt

Critical comparing bug: Int(100) is sometimes bigger than BInt("11173433833219812840")

raspisanie opened this issue · 2 comments

let hundred = 100
if let bint = BInt("11173433833219812840") {
    
    if hundred < bint {
        print("bint(\(bint)) is bigger than a hundred")
    } else {
        print("bint(\(bint)) is lower than a hundred or equals")
    }
    
    if 100 < bint {
        print("bint(\(bint)) is bigger than 100")
    } else {
        print("bint(\(bint)) is lower than 100 or equals")
    }
    
}

bint(11173433833219812840) is lower than a hundred or equals
bint(11173433833219812840) is bigger than 100

It is ok when a Bint is compared with a numeric constant directly, but comparing with a "let constant" is not correct.

image

Did not meet the same error.

Oh, I'll make a sample project on git and leave a message here, soon.

I think it can be caused on specific environment.

Thank you for replying.