Decimal separator
BCS
none at anon.com
Fri Feb 12 14:39:40 PST 2010
Hello Nrgyzer,
> Hello everyone,
>
> I'm trying to split an integer into a integer with decimal points (or
> char[] with decimal points). I already know that I can do this with
> std.format.doFormat() but I don't know how I can use this to convert
> my int (for example... 10000) to 10,000.
>
> I hope anyone can help me :)
>
> In this case... thanks so much for help
>
char[] AddCharEvery(char[] str, char c, int i)
{
if(str.length > i) return AddCharEvery(str[0..$-i],c,i) ~ c ~ str[0..$-i];
else return str;
}
or
char[] AddCharEvery(char[] str, char c, int i)
{
if(str.length <= i) return str;
auto ret = new char[str.length + (str.length-1)/i];
int at = ret.length;
while(str.length > i)
{
ret[at-i..at] = str[$-i..$];
ret[at-i-1] = c;
at -= (i+1);
str = str[0..$-i];
}
ret[0..at] = str;
return ret;
}
//example
import std.stdio;
void main()
{
writef("%s\n", AddCharEvery("100000000000000", ',', 3));
writef("%s\n", AddCharEvery("10000000000000", ',', 3));
writef("%s\n", AddCharEvery("1000000000000", ',', 3));
writef("%s\n", AddCharEvery("100000000000", ',', 3));
}
--
<IXOYE><
More information about the Digitalmars-d
mailing list