
Рашиджон
04.07.2017
17:29:53
Простите я вас не понял

Stanislav
04.07.2017
17:30:50

Рашиджон
04.07.2017
17:33:56
Спасибо

Mikhail
04.07.2017
17:58:11
В плюсах как нибудь можно проверить, что переменная дабл содержит только нули в памяти? Кроме memcmp?

Google

Mikhail
04.07.2017
17:58:30
Или вариант memcmp, но без создания временной переменной
И вообще double(0) - заполняет 8 байт нулями или это реально double число?

Alexander
04.07.2017
17:59:18

Mikhail
04.07.2017
17:59:46

Alexander
04.07.2017
18:00:21
точность эту гарантирует тебе Стандарт

Mikhail
04.07.2017
18:00:56
Ладно, а есть метод стандартный тогда на проверку нуля?

Vitaly
04.07.2017
18:01:05

Mikhail
04.07.2017
18:01:19

Alexander
04.07.2017
18:01:26

Google

Vitaly
04.07.2017
18:01:30

Alexander
04.07.2017
18:01:46


Vitaly
04.07.2017
18:01:52
Кстати, сразу вспомнил историю про банк. В общем, взял один человек кредитку в банке, входящем в десятку самых крупных в России, затем успешно погасил его. Дабы не платить за обслуживание счёта, он решил закрыть его и уничтожить карту. Написав заявление, операционист заявила, что закрыть счёт не может, т.к. у него до сих пор висит долг в виде 0.000000000XXXX рублей.
Он решил заплатить, чтобы ликвидировать его, однако другой операционист на кассе заявил, что долга он видит и оплачивать попросту нечего. Принять же средства просто на счёт у них нельзя, т.к. счёт кредитный. В результате он несколько месяцев бился с руководством банка и те, в конце концов, выписали ему бумагу о "прощении долга", на основании которой счёт и был закрыт.
Такая вот история, гласящая нам о том, что никогда не следует использовать данный тип данных в финансовых операциях. Нормальные банки всё хранят в виде целых чисел, а при выводе просто делят результат на 100.
Вот вам история про один банк из топ 10 российских. У них до сих пор такое дерьмо творится кстати.


Mikhail
04.07.2017
18:02:28
это понятно

Vladislav
04.07.2017
18:02:31

Mikhail
04.07.2017
18:02:39
просто у меня double в делителе


Дед Пегас
04.07.2017
18:02:47
Кстати, сразу вспомнил историю про банк. В общем, взял один человек кредитку в банке, входящем в десятку самых крупных в России, затем успешно погасил его. Дабы не платить за обслуживание счёта, он решил закрыть его и уничтожить карту. Написав заявление, операционист заявила, что закрыть счёт не может, т.к. у него до сих пор висит долг в виде 0.000000000XXXX рублей.
Он решил заплатить, чтобы ликвидировать его, однако другой операционист на кассе заявил, что долга он видит и оплачивать попросту нечего. Принять же средства просто на счёт у них нельзя, т.к. счёт кредитный. В результате он несколько месяцев бился с руководством банка и те, в конце концов, выписали ему бумагу о "прощении долга", на основании которой счёт и был закрыт.
Такая вот история, гласящая нам о том, что никогда не следует использовать данный тип данных в финансовых операциях. Нормальные банки всё хранят в виде целых чисел, а при выводе просто делят результат на 100.
Ну и хуита.


Mikhail
04.07.2017
18:02:50
мне нужно проверять, чтобы в делителе не было нуля
как мне это сделать тогда?
только через эпсилон?

Alexander
04.07.2017
18:03:07

Дед Пегас
04.07.2017
18:03:09
Но флоаты зло.
Храните в fixed point!

Mikhail
04.07.2017
18:03:15
т.е. самому погрешность вводить?

Alexander
04.07.2017
18:03:23
yes

Mikhail
04.07.2017
18:03:33
мда

Vitaly
04.07.2017
18:04:21
Ну и хуита.
А то. Не зря я этот банк рекомендую всем за 10 километров обходить.

Vladislav
04.07.2017
18:04:39

Google

Дед Пегас
04.07.2017
18:04:40
/me правда и кредитов не берёт, нет нужды.

Alexander
04.07.2017
18:05:18

Kostya
04.07.2017
18:06:19
С++ - боль
согласен, пишите на ассемблере.
ибо нефиг юзать этот синтаксический сахар
?

Alexander
04.07.2017
18:06:52

Scarf
04.07.2017
18:07:44

Alexander
04.07.2017
18:08:18

Vitaly
04.07.2017
18:08:29

Scarf
04.07.2017
18:08:49
Если сделать 2.0 - 2.0 - ноля не будет

Vladislav
04.07.2017
18:08:49

Scarf
04.07.2017
18:09:12
(если только они из памяти тащаться)

Scarf
04.07.2017
18:09:22
Если константы, то они идентичны
И будет 0
Естественно, с заданой точностью

Vladislav
04.07.2017
18:09:52
вообще конечно сложно представить реализацию floating point, в которой нет точного нуля

Antony
04.07.2017
18:10:29

Alexander
04.07.2017
18:10:53

Eugene
04.07.2017
18:10:55

Berkus
04.07.2017
18:11:09

Google

Berkus
04.07.2017
18:11:15
буст под андроид собирается и работает

Mikhail
04.07.2017
18:11:16

Antony
04.07.2017
18:11:42
тогда проверка на ноль не спасёт

Berkus
04.07.2017
18:12:11

Alexey
04.07.2017
18:12:12
Нужно проверять на 0 с точность Eps

Vladislav
04.07.2017
18:12:12

Admin
ERROR: S client not available

Eugene
04.07.2017
18:12:51

Berkus
04.07.2017
18:12:59

Evgeniy
04.07.2017
18:13:13

Mikhail
04.07.2017
18:13:35

Sergei
04.07.2017
18:13:40

Mikhail
04.07.2017
18:13:45
Да хрен с ним, буду на эпсилон сравнивать

Berkus
04.07.2017
18:13:56

Evgeniy
04.07.2017
18:14:05

Mikhail
04.07.2017
18:14:30

Sergei
04.07.2017
18:14:49
Ой, не эту, а про boost под android

Mikhail
04.07.2017
18:14:56
по моему в венде какое то поведение было неопределнное

Alexander
04.07.2017
18:15:13
синий экран с грустным смайлом

Google

Alexander
04.07.2017
18:15:32
/sarcasm

Eugene
04.07.2017
18:15:37
Можно считать как-то так:
std::abs(a - b) < std::abs(std::min(a, b)) * (eps * coeff)
Так вроде в Qt сделано в qFuzzyEqual, но могу врать.

Berkus
04.07.2017
18:16:07
там немного магии c user-config.jam но надо будет для r15 его подчистить

Evgeniy
04.07.2017
18:16:41

Eugene
04.07.2017
18:17:59
C++ builder по умолчанию не маскирует floating point overflow errors

Sergei
04.07.2017
18:18:51
@berkus Если тебе будет не слишком сложно, то буду благодарен

Berkus
04.07.2017
18:20:05

Sergei
04.07.2017
18:21:40
Ок конечно, давай. Отлично

Berkus
04.07.2017
18:28:17
Ок конечно, давай. Отлично
поскольку там упоминается пару раз мой работодатель, я ща с менеджером провентилирую как лучше выложить. это немного задержит процесс но максимум завтра будет на гитхабе

Sergei
04.07.2017
18:39:55
Да без проблем - главное ссылку не забудь =))
Мне не супер к спеху

Berkus
04.07.2017
18:40:13
окей

PAM3ES
04.07.2017
18:58:27
"Rvalue ссылка ведет себя точно так же, как и lvalue ссылка, за исключением того что она может быть связана с временным объектом, тогда как lvalue связать с временным (не константным) объектом нельзя." это правильное утверждение?
или частично, если частично то добавьте что-то

Sergei
04.07.2017
19:08:09
Тебе не ответили там и ты спросил здесь - верно !

F.L
04.07.2017
19:08:28
во флудилке никого нет
мне там тоже не ответили