INT Conversion

HI
I’m getting an issue where an api response is returning a float for a user id, i.e
{“user_id” : 20715915.0}

I want to convert this to an INT by applying:

INT(20715915.0)
but this returns 20715916
instead of 20715915

Can anyone help me here?

though “INT” should return what you are expecting try “CINT”

https://developer.roku.com/docs/references/brightscript/language/global-math-functions.md

Thanks for the quick response but CINT also returns the same, I’ve tried that already.

Brightscript Debugger> p CINT(20715915.0)
20715916

This is a limitation of the 32-bit IEEE floating point representation used by the BrightScript Float type, and the global functions Int and CInt which take a parameter of that type.

In your own calculations you may be able to use the BrightScript Double (and LongInteger) types if you need greater precision.

Unfortunately it is a known issue that for backward compatibility reasons the ParseJSON function will emit a Float value rather than Double for values that fit in the Float range, which may result in the IEEE precision/rounding issues with conversions such as you have found.