Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Greatest-width floating-point typedef

Boost , Math Toolkit 2.5.0 , Chapter 3. Specified-width floating-point typedefs

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

<typedeffloatmax_t>обозначает тип с плавающей точкой, способный наиболее точно представлять любое значение любого типа с плавающей точкой в данной платформе.

Наибольшая ширина<typedef>предусмотрена для всех платформ, но, конечно, размер может варьироваться.

Для обеспечения плавающей точкиКонстантынаиболее точно представлен для типа<floatmax_t>, используйте макрос<BOOST_FLOATMAX_C>.

Заменить константу<123.4567890123456789012345678901234567890>на

BOOST_FLOATMAX_C(123.4567890123456789012345678901234567890)

Если, например,<floatmax_t><float64_t>, то результат будет эквивалентен<longdouble>суффиксу с L, но если<floatmax_t><float128_t>, то результат будет эквивалентен<quad type>суффиксу с Q (при условии, конечно, что<float128_t><__float128>или<Quad>поддерживается).

Если мы показываем с<max_digits10>, максимальные, возможно, значительные десятичные цифры:

#ifdef BOOST_FLOAT32_C
  std::cout.precision(boost::max_digits10<boost::float32_t>()); // Show all significant decimal digits,
  std::cout.setf(std::ios::showpoint); // including all significant trailing zeros.
  std::cout << "BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) = "
    << BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) << std::endl;
  //   BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) = 123.456787
#endif

Затем на 128-битной платформе (GCC 4.8.1 или выше с квадматом):

BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) = 123.456787
BOOST_FLOAT64_C(123.4567890123456789012345678901234567890) = 123.45678901234568
BOOST_FLOAT80_C(123.4567890123456789012345678901234567890) = 123.456789012345678903
BOOST_FLOAT128_C(123.4567890123456789012345678901234567890) = 123.456789012345678901234567890123453

PrevUpHomeNext

Статья Greatest-width floating-point typedef раздела Math Toolkit 2.5.0 Chapter 3. Specified-width floating-point typedefs может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 3. Specified-width floating-point typedefs ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:00:29/0.0051629543304443/1