Modules
ADT Database GTK2 GUI IP PiJAX Public Sql Stdio Subversion System Tools Xosd lua v4l2 wx
Recent Changes
Public.Parser.XML2 1.50
Public.ZeroMQ 1.1
Public.Template.Mustache 1.0
Public.Protocols.XMPP 1.4
Sql.Provider.jdbc 1.0
Popular Downloads
Public.Parser.JSON2 1.0
Public.Parser.JSON 0.2
GTK2 2.23
Public.Web.FCGI 1.8
Public.Parser.XML2 1.48
|
Module Information
Public.L10n
Viewing contents of Public_L10n-0.1/module.pmod.in
class Number
{
float _num = 0.0;
int _decimals = 2;
int _strip_decimals_zeroes = 0;
string _decimals_sep=".";
string _thousands_sep=",";
void create(float num)
{
_num = num;
return;
}
void set_decimals(int decimals)
{
_decimals = decimals;
return;
}
void set_decimals_sep(string decimals_sep)
{
_decimals_sep = decimals_sep;
return;
}
void set_thousands_sep(string thousands_sep)
{
_thousands_sep = thousands_sep;
return;
}
void set_strip_decimals_zeroes(int strip_decimals_zeroes)
{
_strip_decimals_zeroes = strip_decimals_zeroes;
}
string format()
{
string out = "";
// "%.2f"
string out_format=sprintf("%%.%df",_decimals);
// "12345.678900"
string n = sprintf(out_format, _num);
// ({ "12345", "678900" })
array parts = n/".";
// "12.345"
out += group_thousands(parts[0], _thousands_sep);
// Do we have decimals?
if(sizeof(parts)==2)
{
// "678900"
string dec = parts[1];
if(_strip_decimals_zeroes)
{
// "6789"
int i = sizeof(dec);
i--;
while(dec[i..i]=="0")
{
dec=dec[0..i-1];
i--;
}
}
// "678.9"
dec = group_thousands(dec, _thousands_sep, 0);
// "12.345,678.9"
out += _decimals_sep+dec;
}
return out;
}
}
string group_thousands(string data, string separator, void|int doreverse)
{
string out = "";
array data_parts = ({ });
int _doreverse = 1;
if(!zero_type(doreverse) && intp(doreverse))
_doreverse = doreverse;
if(_doreverse)
{
// "54321"
data = reverse(data);
}
// ({ "345", "12"})
int size=sizeof(data);
for(int i=0; isize-1)
if(_doreverse)
data_parts += ({ reverse(data[i..]) });
else
data_parts += ({ data[i..] });
else
if(_doreverse)
data_parts += ({ reverse(data[i..i+2]) }) ;
else
data_parts += ({ data[i..i+2] }) ;
}
if(_doreverse)
{
// ({ "12", "345" })
data_parts = reverse(data_parts);
}
// "12,345"
out = data_parts*separator;
return out;
}
|
|
|