Format a number with grouped thousands.

You're viewing an older version of this page (#269). View the current version.

View versions (1)

Interface

#include <codecogs/computing/io/format/number_format.h>

using namespace Computing::Io::Format;

Overview

Format a number, by inserting a separator between every 3 digits of the main number and by rounding the result to the specified number of decimal places. The function is modelled on the PHP equivalent of the same name.

Example:

#include <stdio.h>
#include <codecogs/computing/io/format/number_format.h>

int main ()
{
  char* a=IO::Format::number_format_c(234.38645,2);
  printf("\n%s", a);
	delete[](a);
}

Output:

234.39

This function create a dynamic array, ensure you release this memory with delete[]

Parameters

value
The number to be converted into a text string.
dp
The number of decimal places to truncate the number to. dp has a range from 0 to 19. (default =0)
dec_point
is the character to be used as a decimal point. (default='.')
thousand_sep
Character to be inserted after every 3 digits. (default=',')

Returns

A character string of the formatted number.

The routine does not work with very very large numbers.

GPL Licence — free for non commercial use. See Licence details.

FUNCTION

number_format

Format a number, by inserting a separator between every 3 digits of the main number and by rounding the result to the specified number of decimal places. The function is modelled on the PHP equivalent of the same name.

This function only differs from that above in that it returns a standard string object, which is automatically released from memory when the object goes out of scrope. Thereby avoiding any possible memory leaks.

Example:

#include <stdio.h>
#include <codecogs/computing/io/format/number_format.h>

using namespace IO::Format;

int main ()
{
  printf("\n%s", number_format(22.38645,2).c_str());
  printf("\n%s", number_format(122.38245,2).c_str());
  printf("\n%s", number_format(4122.38645,2).c_str());
  printf("\n%s", number_format(-57000000,2,'.',':').c_str());
  printf("\n%s", number_format(-1234.567,2,'.',':').c_str());
  printf("\n%s", number_format(-987.654,2,'.',':').c_str());
}

Output:

22.39
122.38
4,122.39
-57:000:000.00
-1:234.57
-987.65

Parameters

value
The number to be converted into a text string.
dp
The number of decimal places to truncate the number to. dp has a range from 0 to 19. (default =0)
dec_point
is the character to be used as a decimal point. (default='.')
thousand_sep
Character to be inserted after every 3 digits. (default=',')

Returns

A character string of the formatted number.

The routine does not work with very very large numbers.

Author

Will Bateman (July 2007)