Я оказался на совещании, где IBM первоначально предложила десятичные типы для WG14 и WG21.Их первоначальное предложение состояло в том, чтобы предоставить их как нативные типы, что является практически единственным решением в C. Однако WG21 не был полностью убежден и указал, что C ++ уже имеет std::complex<>
в качестве математического типа в библиотеке, так почему бы и нетstd::decimal<>
?Первоначальное заблуждение по поводу снижения производительности было быстро закончено, когда было указано, что std::decimal
может явно обернуть расширение компилятора _Decimal
.
После того, как я сказал, что это можно сделать в библиотеке, следующий вопрос былзатем, должно ли это быть в библиотеке Standard .Это ведь специализированный домен, в котором это полезно.Самая распространенная область - финансы - на самом деле в этом не нуждается (им действительно нужна десятичная с фиксированной запятой, а не десятичная с плавающей запятой).После этого отзыва IBM не стала продвигать свое предложение намного дальше.
Эти типы не решают проблему погрешности с плавающей запятой.1/3 все еще не представима.Однако 1/5 есть.