FormatNumber
#1

I added formatnumber for each amount of money and I give a wrong result

example
First time i got $ 100,000 and i added formatnumber and now got 50$, in text

Код:
FormatNumber(number)
{
   new Str[15];
   format(Str, 15, "%d", number);

   if (strlen(Str) < sizeof(Str))
   {
      if (number >= 1000 && number < 10000)
             strins( Str, ",", 1, sizeof(Str));

      else if (number >= 10000 && number < 100000)
           strins(Str, ",", 2, sizeof(Str));

      else if (number >= 100000 && number < 1000000)
           strins(Str, ",", 3, sizeof(Str));

      else if (number >= 1000000 && number < 10000000)
           strins(Str, ",", 1, sizeof(Str)),strins(Str, ",", 5, sizeof(Str));

      else if (number >= 10000000 && number < 100000000)
           strins(Str, ",", 2, sizeof(Str)),strins(Str, ",", 6, sizeof(Str));

      else if (number >= 100000000 && number < 1000000000)
           strins(Str, ",", 3, sizeof(Str)),strins(Str, ",", 7, sizeof(Str));

      else if (number >= 1000000000 && number < 10000000000)
           strins(Str, ",", 1, sizeof(Str)),
           strins(Str, ",", 5, sizeof(Str)),
           strins(Str, ",", 9, sizeof(Str));
      else format(Str, 10, "%d", number);
   }
   else  format( Str, 15, "<BUG>" );
   return Str;
}
Reply
#2

pawn Код:
FormatNumber(number)
{
    new numOfPeriods = 0, tmp = number;
    new str[32];
    while(tmp > 1000) {
        tmp = floatround(tmp / 1000, floatround_floor), ++numOfPeriods;
    }
    valstr(str, number);
    new slen = strlen(str);
    for(new i = 1; i != numOfPeriods + 1; ++i) {
        strins(str, ",", slen - 3*i);
    }
    return str;
}
Reply
#3

Did you put %s instead of %d.?
Reply
#4

i have
%d
Reply
#5

%d and %i are for numbers, and FormatNumber returns string. You can't display string using %d
Reply
#6

i tried with %s and is worked

SOLVED
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)