I'm working with a third party API for some external hardware. One of the functions takes a NSNumber, and it fails to interact correctly with the hardware if I cast a Float too NSNumber, but works as expected if I use Double..
I dont know if it is related to NSNumber.stringValue since I dont know what the third part lib does with the NSNumber, but I noticed this:
let float = 100_000_00 as Float
let floatNumber = float as NSNumber
let double = 100_000_00 as Double
let doubleNumer = double as NSNumber
hardware.doThing(number: floatNumber as NSNumber) // Hardware does not work
hardware.doThing(number: doubleNumer as NSNumber) // Hardware works
// Also noticed this:
"\(floatNumber)" // "1e+07"
"\(doubleNumer)" // "10000000"
Is this expected behaviour?