Re: сравнить double
От: Аноним  
Дата: 21.01.09 07:32
Оценка: -2 :)
Здравствуйте, Аноним, Вы писали:

А>подскажите, как правильно сделать такое сравнение

А>Есть два числа;
А>
А>double A;
А>double B;
А>


А>и нужно если A больше B в два раза нужно проделать одно действия, если B больше A в 2 раза проделать другое действие, иначе третье точность сравнения 0.01, я делаю так:


А>
А>if(A - 2 * B >= 0.01)
А>{
А>//..................
А>}
А>else if(B - 2 *A >= 0.01)
А>{
А>//..................
А>}
А>else
А>{
А>//.............
А>}
А>



Я думаю правильнее сравнивать abs(2*B-A) <= 0.01 и abs(2*A-B) <= 0.01
Re[3]: сравнить double
От: Bell Россия  
Дата: 21.01.09 09:07
Оценка: 3 (1) :)
Здравствуйте, placement_new, Вы писали:

_>Тогда уж fabs


Что касается использования fabs вместо abs:

26.5/5
In addition to the double versions of the math functions in <cmath>, C + + adds float and long
double overloaded versions of these functions, with the same semantics.

26.5/6
The added signatures are:
float abs (float);
...
double abs(double); // fabs()
...
long double abs (long double);

Любите книгу — источник знаний (с) М.Горький
Re: сравнить double
От: placement_new  
Дата: 21.01.09 07:16
Оценка: +2
Здравствуйте, Аноним, Вы писали:
Ну нужна здесь ни какая точность, ты же не на рвенство проверяешь.
Просто A > 2*B итд
Re[2]: сравнить double
От: placement_new  
Дата: 21.01.09 08:42
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>подскажите, как правильно сделать такое сравнение

А>>Есть два числа;
А>>
А>>double A;
А>>double B;
А>>


А>>и нужно если A больше B в два раза нужно проделать одно действия, если B больше A в 2 раза проделать другое действие, иначе третье точность сравнения 0.01, я делаю так:


А>>
А>>if(A - 2 * B >= 0.01)
А>>{
А>>//..................
А>>}
А>>else if(B - 2 *A >= 0.01)
А>>{
А>>//..................
А>>}
А>>else
А>>{
А>>//.............
А>>}
А>>



А>Я думаю правильнее сравнивать abs(2*B-A) <= 0.01 и abs(2*A-B) <= 0.01


Тогда уж fabs
Re[2]: сравнить double
От: rusted Беларусь  
Дата: 21.01.09 08:51
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>>и нужно если A больше B в два раза нужно проделать одно действия, если B больше A в 2 раза проделать другое действие, иначе третье точность сравнения 0.01, я делаю так:


А>Я думаю правильнее сравнивать abs(2*B-A) <= 0.01 и abs(2*A-B) <= 0.01


Это уже будет сравнение на то, что A находится в +- 0.01 от 2*B, а не на то что A > 2*B
Re[4]: сравнить double
От: Erop Россия  
Дата: 21.01.09 09:29
Оценка: :)
Здравствуйте, Bell, Вы писали:

B>Что касается использования fabs вместо abs:

Кто-то обещал плюсы?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: сравнить double
От: Cyberax Марс  
Дата: 22.01.09 18:32
Оценка: +1
Здравствуйте, ., Вы писали:

>> B>Что касается использования fabs вместо abs:

>> Кто-то обещал плюсы?
.>//-комменты теоретически только в плюсах.
В С99 они тоже есть.
Sapienti sat!
сравнить double
От: Аноним  
Дата: 21.01.09 06:12
Оценка:
подскажите, как правильно сделать такое сравнение
Есть два числа;
double A;
double B;


и нужно если A больше B в два раза нужно проделать одно действия, если B больше A в 2 раза проделать другое действие, иначе третье точность сравнения 0.01, я делаю так:

if(A - 2 * B >= 0.01)
{
//..................
}
else if(B - 2 *A >= 0.01)
{
//..................
}
else
{
//.............
}
Re: А что делать в пограничном случае?
От: Erop Россия  
Дата: 21.01.09 09:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>и нужно если A больше B в два раза нужно проделать одно действия, если B больше A в 2 раза проделать другое действие, иначе третье точность сравнения 0.01, я делаю так:


1) Таки какой язык из двух, которым посвящён форум, имеется в виду?

2) Что обозначает выделенная фраза? Как бы, если это погрешность чисел, то тогда при числах 1 и 0.5 мы как бы не знаем точно выполняется неравенство или нет. И что надо делать в таком, пограничном, случае?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: сравнить double
От: . Великобритания  
Дата: 22.01.09 18:29
Оценка:
Erop wrote:

> B>Что касается использования fabs вместо abs:

> Кто-то обещал плюсы?
//-комменты теоретически только в плюсах.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.