How to Always Show 2 Places After a Decimal Point - Such as when using dollars and cents

Hey All,

I’m working on a shop script to buy/sale items and using math to show a total dollar and cent value. I can’t figure out how to make the final value of a sale to always show the two digits following a decimal points.

For example:
If an item costs .25 and the player buys 5 of them, the total shown is $1.25.
If the player buys 6 of the the total shown is $1.5
I’m trying to make the total read $1.50.

Basic example script:

local totalAmount = player.PlayerGui.ScreenGui.ShopFrame.TotalLabel  --What will hold the final value
local item1 = .25  -- cost of each item
local quantity = player.PlayerGui.ScreenGui.ShopFrame.Quantity.Value -- quantity selected

totalAmount.Value = (item1 * quantity)  -- assigns the final cost, but removes zeros at the end

Any thoughts on how to always show two places after the decimal point, even if they are zeros?

2 Likes

String formatting is what is needed here. When you want to display the total, just use a format like this

string.format("%.2f", TOTALAMOUNTHERE)

This would put at least 2 decimal places, although this will also do it to full whole numbers as well

@heII_ish Yeah my bad, just woke up and didn’t read the documentation properly

7 Likes

You can use the %.2f format and then format your string.

string.format("%.2f", 1) --> 1.00
string.format("%.2f", 1.5) --> 1.50
string.format("%.2f", 1.558) --> 1.56

@EmbatTheHybrid The format string actually comes first

2 Likes

how would i do it so if its greater than 2 characters it formats but if its just 1 character it stays