Sometimes a change to a numeric attribute value with a long length may appear to be overridden by Algolia. For example, trying to set an attribute value of "9182470180325827" will update the record with "9182470180325828" instead.
This is actually an issue in JavaScript itself. Some large numbers (like 9182470180325827) are not "safe integers." More information about that concept can be seen here:
A safe integer is an integer that:
- can be exactly represented as an IEEE-754 double precision number, and
- whose IEEE-754 representation cannot be the result of rounding any other integer to fit the IEEE-754 representation
The safe integers consist of all integers from -(2^53 - 1) inclusive to 2^53 - 1 inclusive (± 9007199254740991 or ± 9,007,199,254,740,991).
A workaround for this issue is to represent the attribute values as a string. Note that this may require updating code to account for the change.