FrameworkZ 10.8.3
Provides a framework for Project Zomboid with various systems.
Loading...
Searching...
No Matches
DollarFormats.lua
Go to the documentation of this file.
5-- from sam_lie
6-- Compatible with Lua 5.0 and 5.1.
7-- Disclaimer : use at own risk especially for hedge fund reports :-)
9---============================================================
10-- add comma to separate thousands
11--
12function FrameworkZ.DollarFormats:CommaValue(amount)
13 local formatted = amount
14 while true do
15 formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
16 if (k==0) then
17 break
18 end
19 end
20 return formatted
21end
22
23---============================================================
24-- rounds a number to the nearest decimal places
25--
26function FrameworkZ.DollarFormats:Round(val, decimal)
27 if (decimal) then
28 return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
29 else
30 return math.floor(val+0.5)
31 end
32end
33
34--===================================================================
35-- given a numeric value formats output with comma to separate thousands
36-- and rounded to given decimal places
37--
38--
39function FrameworkZ.DollarFormats:Get(amount, decimal, prefix, neg_prefix)
40 local str_amount, formatted, famount, remain
41
42 decimal = decimal or 2 -- default 2 decimal places
43 neg_prefix = neg_prefix or "-" -- default negative sign
44
45 famount = math.abs(self:Round(amount,decimal))
46 famount = math.floor(famount)
47
48 remain = self:Round(math.abs(amount) - famount, decimal)
49
50 -- comma to separate the thousands
51 formatted = self:CommaValue(famount)
52
53 -- attach the decimal portion
54 if (decimal > 0) then
55 remain = string.sub(tostring(remain),3)
56 formatted = formatted .. "." .. remain ..
57 string.rep("0", decimal - string.len(remain))
58 end
59
60 -- attach prefix string e.g '$'
61 formatted = (prefix or "") .. formatted
62
63 -- if value is negative then format accordingly
64 if (amount<0) then
65 if (neg_prefix=="()") then
66 formatted = "("..formatted ..")"
67 else
68 formatted = neg_prefix .. formatted
69 end
70 end
71
72 return formatted
73end
void FrameworkZ DollarFormats()
void formatted()
void self self
Definition MainMenu.lua:89
void processingNotification backgroundColor a()
void value()
void Get(amount, decimal, prefix, neg_prefix)
void Round(val, decimal)
Foundation for FrameworkZ.