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 { //убедились, что операнды не равны, здесь можно //смело сравнивать операторами ">" и "<" }