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><


Reply via email to