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