FAQ:ANSI CPP — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Не получается сравнить два числа типа double)
(Как задать число знаков после запятой у float при преобразовании в строку?)
Строка 51: Строка 51:
  
 
===Как задать число знаков после запятой у float при преобразовании в строку?===
 
===Как задать число знаков после запятой у float при преобразовании в строку?===
 +
примеры для разных случаев:
 +
<pre>
 +
char sDouble[128]
 +
float d1 = 0.001778;
 +
...
 +
sprintf(sDouble,"%.4f",d1);//4 знака после запятой
 +
...
 +
printf("%.4f", d1);//4 знака после запятой
 +
...
 +
cout<<setiosflags( ios::fixed )<< setprecision( 4 )
 +
<< d1;//4 знака после запятой
 +
</pre>
 +
 
===Как динамически задать число знаков после запятой у float при преобразовании в строку?===
 
===Как динамически задать число знаков после запятой у float при преобразовании в строку?===

Версия 10:11, 20 апреля 2007

Не получается сравнить два числа типа double

стандартный прием - задание точности:

	#include <math.h>
	double d1,d2;
	double acc=0.00001;//требуемая точность сравнения
	...
	...
	if( fabs(d1-d2) < acc )
	{
		//операнды равны (с точностью acc)
	}
	else
	{
		//убедились, что операнды не равны, здесь можно
		//смело сравнивать операторами ">" и "<"
	}


#include <stdio.h>

int main(int argc, char ** argv)
{
  return 0; // xxxxx "aaaa"
}


Указан неподдерживаемый язык.

Вы должны указать язык следующим образом: <source lang="html4strict">...</source>

Поддерживаемые языки:

[развернуть]


#include <stdio.h>

int main(int argc, char ** argv)
{
  return 0; // <b>xxxxx</b> "aaaa"
}


#include <stdio.h>

int main(int argc, char ** argv)
{
  return 0; // <b>xxxxx</b> "aaaa"
}

Как задать число знаков после запятой у float при преобразовании в строку?

примеры для разных случаев:

	char sDouble[128]
	float d1 = 0.001778;
	...
	sprintf(sDouble,"%.4f",d1);//4 знака после запятой
	...
	printf("%.4f", d1);//4 знака после запятой
	...
	cout<<setiosflags( ios::fixed )<< setprecision( 4 )
					<< d1;//4 знака после запятой

Как динамически задать число знаков после запятой у float при преобразовании в строку?