According to “Number” data type in the documentation,
For some numerical items, Make may validate the input for a specified range (the minimum or maximum allowed value).
My guess is that your number is too large.
The value of the Number.MAX_SAFE_INTEGER constant is 9007199254740991 –
That is approximately 16 digits, while your number is 18 digits, hence the truncation.
The correct workaround is to store the number as a string.