Size: a a a

2020 June 15

HJ

Happy Jupiter in pro.cxx
Бинари шланга то есть уже
источник

AT

Anatoly Tomilov in pro.cxx
Есть какой-то предикат (пусть и специфичный для компилятора, платформы etc), позволяющий для floating-point литерала понять, имеет ли точное представление данный литерал? Например, isExact(0.3) == false, но isExact(0.25) == true или isExact(0.0) == true. Кажется такой может быть compile-time, ведь так?
источник

АК

Александр Караев... in pro.cxx
Anatoly Tomilov
Есть какой-то предикат (пусть и специфичный для компилятора, платформы etc), позволяющий для floating-point литерала понять, имеет ли точное представление данный литерал? Например, isExact(0.3) == false, но isExact(0.25) == true или isExact(0.0) == true. Кажется такой может быть compile-time, ведь так?
если посмотреть на IEEE754, можно заметить, чем точные литералы отличаются от остальных
источник

IA

Igor Akhmetov in pro.cxx
Anatoly Tomilov
Есть какой-то предикат (пусть и специфичный для компилятора, платформы etc), позволяющий для floating-point литерала понять, имеет ли точное представление данный литерал? Например, isExact(0.3) == false, но isExact(0.25) == true или isExact(0.0) == true. Кажется такой может быть compile-time, ведь так?
В качестве хака можно проверить что float(x) == double(x).
источник

DF

Dollar Føølish in pro.cxx
Хитро
источник

v

vehlwn in pro.cxx
Anatoly Tomilov
Есть какой-то предикат (пусть и специфичный для компилятора, платформы etc), позволяющий для floating-point литерала понять, имеет ли точное представление данный литерал? Например, isExact(0.3) == false, но isExact(0.25) == true или isExact(0.0) == true. Кажется такой может быть compile-time, ведь так?
Или можно использовать boost::cpp_rational.
источник

DF

Dollar Føølish in pro.cxx
А оно на иррациональных числах эксепшн кидает ?
источник

RR

Roman Rubanenko in pro.cxx
можно умножать на 2, пока целое число не выйдет, а потом его еще раз проверить. Но это не звучит как лучшее решение
источник

RR

Roman Rubanenko in pro.cxx
Dollar Føølish
А оно на иррациональных числах эксепшн кидает ?
Я думаю иррациональный дабл сложно будет придумать
источник

FS

Flower Surgeon in pro.cxx
qFuzzyCompare жи
источник

AT

Anatoly Tomilov in pro.cxx
Flower Surgeon
qFuzzyCompare жи
мимо
источник

AT

Anatoly Tomilov in pro.cxx
вообще, кажется, предикат был бы чем-то вроде template<typename CharT, CharT... s> constexpr bool operator ""_is_exact () { return /*что-то с факторизацией числа s...*/; }
источник

AT

Anatoly Tomilov in pro.cxx
это расширение gcc, если что
источник

AD

Andrey Davydov in pro.cxx
Anatoly Tomilov
Есть какой-то предикат (пусть и специфичный для компилятора, платформы etc), позволяющий для floating-point литерала понять, имеет ли точное представление данный литерал? Например, isExact(0.3) == false, но isExact(0.25) == true или isExact(0.0) == true. Кажется такой может быть compile-time, ведь так?
Этот предикат должен принимать на вход строку, не так ли? По строкам "0.25" и "0.3" можно что-то сказать, по floating point литералам уже можно сказать только одно: "да, представимо".
источник

AT

Anatoly Tomilov in pro.cxx
Andrey Davydov
Этот предикат должен принимать на вход строку, не так ли? По строкам "0.25" и "0.3" можно что-то сказать, по floating point литералам уже можно сказать только одно: "да, представимо".
мне не надо "представимо", мне надо "представимо точно"
источник

AT

Anatoly Tomilov in pro.cxx
это может быть либо встроенным в язык оператором, либо вот как то расширение g++
источник

AT

Anatoly Tomilov in pro.cxx
Anatoly Tomilov
мне не надо "представимо", мне надо "представимо точно"
слишком много знаков в мантиссе — тоже должно быть учтено, кстати
источник

IA

Igor Akhmetov in pro.cxx
Anatoly Tomilov
это может быть либо встроенным в язык оператором, либо вот как то расширение g++
Вряд ли такое есть. Сконвертируйте в целое и проверьте на что заканчивается мантисса.
источник

v

vehlwn in pro.cxx
Dollar Føølish
А оно на иррациональных числах эксепшн кидает ?
Иррациональных не существует.
источник

v

vehlwn in pro.cxx
В плюсах нет никакой валуев презентации флотов.
источник