Why is roblox capping my numbers?

For some reason, my number is being changed by Roblox for no reason? It goes from 1 billion, to a 999M. I am not changing the players coins anywhere in the code whatsoever at the moment, so coins is constantly 1 billion

	print(Data.Coins) -- prints 1000000000
	self:UpdateLeaderstats(player)
end

function PlayerService:UpdateLeaderstats(player)
	if not player:FindFirstChild("leaderstats") then return end
	
	local Data = DataService:Get(player)
	print(Data.Coins) -- prints 999999967
end

image

What is the :Get() function? Otherwise I don’t know.

It just returns the players data

The problem is coming from the supposed “DataService” which you didn’t show us any information about, how do you expect us to help?

It most likely could be that the module you’re using is faulty, or you reached the integer limit for whichever way that module is used to store numbers, or rounding precision errors.

I’d look at the code for DataService:Get(…). Maybe it uses some sort of math function (ex division) which is resulting in some imprecision?

Luau numbers are be able to handle 1 billion, so I doubt it’s from that.
(Source)

Is the value being capped at about 1 bil? If you have a larger value does it still result in ~999999967?