मैं भौतिक प्रयोगों का अनुकरण चला रहा हूं, इसलिए मुझे वास्तव में उच्च फ़्लोटिंग पॉइंट परिशुद्धता (16 अंकों से अधिक) की आवश्यकता है। मैं Boost.Multiprecision का उपयोग करता हूं, हालांकि मुझे 16 अंकों से अधिक सटीकता नहीं मिल सकती है, इससे कोई फर्क नहीं पड़ता कि मैंने क्या प्रयास किया। मैं सी ++ और ग्रहण संकलक के साथ सिमुलेशन चलाने के लिए, उदाहरण के लिए:बूस्ट लिब (उच्चतर 16 अंकों) का उपयोग कर उच्च परिशुद्धता फ़्लोटिंग पॉइंट
#include <boost/math/constants/constants.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <iostream>
#include <limits>
using boost::multiprecision::cpp_dec_float_50;
void main()
{
cpp_dec_float_50 my_num= cpp_dec_float_50(0.123456789123456789123456789);
std::cout.precision(std::numeric_limits<cpp_dec_float_50>::digits10);
std::cout << my_num << std::endl;
}
उत्पादन होता है:
0.12345678912345678379658409085095627233386039733887
^
लेकिन यह होना चाहिए:
0.123456789123456789123456789
आप देख सकते हैं, 16 के बाद अंक गलत है। क्यूं कर?