Пример #1
0
static char *ftoa(char *p, double num, unsigned long precision, bool dot) {
	long l;
	char *q;
	double r;


	if (precision == 0) {
		l = (long)(num + 0.5);
		return long_to_string_with_divisor(p, l, 10, 0);
	} else {
		if (precision > FLOAT_PRECISION) precision = FLOAT_PRECISION;
		r = m10[precision - 1];
		precision = _pow10[precision - 1];

		l = (long)num;
		p = long_to_string_with_divisor(p, l, 10, 0);
		if (dot) *p++ = '.';
		l = (long)((num - l + r) * precision);
		q = long_to_string_with_divisor(p, l, 10, precision / 10) - 1;

		while (q > p) {
			if (*q != '0') {
				break;
			}
			--q;
		}
		return ++q;
	}

	


}
Пример #2
0
static char *ftoa(char *p, double num) {
  long l;
  unsigned long precision = FLOAT_PRECISION;

  l = num;
  p = long_to_string_with_divisor(p, l, 10, 0);
  *p++ = '.';
  l = (num - l) * precision;
  return long_to_string_with_divisor(p, l, 10, precision / 10);
}
Пример #3
0
static char *ftoa(char *p, double num, unsigned long precision) {
  long l;

  if ((precision == 0) || (precision > FLOAT_PRECISION))
    precision = FLOAT_PRECISION;
  precision = ch_pow10[precision - 1];

  l = (long)num;
  p = long_to_string_with_divisor(p, l, 10, 0);
  *p++ = '.';
  l = (long)((num - l) * precision);
  return long_to_string_with_divisor(p, l, 10, precision / 10);
}
Пример #4
0
static char *ltoa(char *p, long num, unsigned radix) {

  return long_to_string_with_divisor(p, num, radix, 0);
}