FAQ:ANSI CPP:сравнить два числа типа double — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Ветвление FAQ:ANSI CPP.)
 
м
 
(не показана одна промежуточная версия этого же участника)
Строка 2: Строка 2:
  
 
Стандартный прием - задание точности:
 
Стандартный прием - задание точности:
<pre>
+
<syntaxhighlight lang="cpp">
#include <math.h>
+
#include <math.h>
  
double d1,d2;
+
double d1, d2;
double acc=0.00001;//требуемая точность сравнения
+
double acc = 0.00001;//требуемая точность сравнения
  
if( fabs(d1-d2) < acc )
+
if( fabs(d1 - d2) < acc )
{
+
{
//операнды равны (с точностью acc)
+
//операнды равны (с точностью acc)
}
+
}
else
+
else
{
+
{
//убедились, что операнды не равны, здесь можно
+
//убедились, что операнды не равны, здесь можно
//смело сравнивать операторами ">" и "<"
+
//смело сравнивать операторами ">" и "<"
}
+
}
</pre>
+
</syntaxhighlight>
  
 
[[Category:FAQ:ANSI CPP]]
 
[[Category:FAQ:ANSI CPP]]

Текущая версия на 00:49, 30 июля 2008

Сравнить два числа типа double.

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

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