<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=406935&amp;view=findpost&amp;p=3636024</guid>
        <pubDate>Sun, 22 Nov 2015 08:51:40 +0000</pubDate>
        <title>Проблема с суммированием float</title>
        <link>https://forum.sources.ru/index.php?showtopic=406935&amp;view=findpost&amp;p=3636024</link>
        <description><![CDATA[vetvet: Да, точно&#33;<br>Проверил<br>При<br>x = x1 + x2 + x3; (15 6e c2 40)<br><br>При <br>x = x1 + x2; x = x + x3; (14 6e c2 40)<br> <br>Я вроде подобный вариант проверял раньше, но видимо сделал не внимательно. Спасибо&#33;]]></description>
        <author>vetvet</author>
        <category>Микроконтроллеры</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=406935&amp;view=findpost&amp;p=3635846</guid>
        <pubDate>Fri, 20 Nov 2015 23:16:04 +0000</pubDate>
        <title>Проблема с суммированием float</title>
        <link>https://forum.sources.ru/index.php?showtopic=406935&amp;view=findpost&amp;p=3635846</link>
        <description><![CDATA[amk: Судя по приведённым кодам, представление используется одинаковое. Отличие наблюдается в самом младшем бите результата (кстати для float незачем выводить больше 8 значащих цифр - в остальных мусор).<br>Скорее всего, округление результата по разному производится.<br><br>Одна из возможных причин. На МК скорее всего вычисления производятся непосредственно в формате float. На ПК для уменьшения влияния округления промежуточные результаты могут храниться в формате long double.]]></description>
        <author>amk</author>
        <category>Микроконтроллеры</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=406935&amp;view=findpost&amp;p=3635839</guid>
        <pubDate>Fri, 20 Nov 2015 22:00:44 +0000</pubDate>
        <title>Проблема с суммированием float</title>
        <link>https://forum.sources.ru/index.php?showtopic=406935&amp;view=findpost&amp;p=3635839</link>
        <description><![CDATA[vetvet: Есть микроконтроллер xMega256A3U, есть код, работающий параллельно и в микроконтроллере и на ПК, и есть необходимость получения идентичных результатов и на ПК и в МК. Код состоит из сумм произведений чисел типа float. И если произведения float&#39;ов получаются идентичными, во всяком случае расхождений пока не было замечено, то суммирование выполняется с ошибкой. Например, при суммировании трех чисел x1 = 2.0892078876495361328125E0 (0x95B50540), x2 = 2.0224435329437255859375E0 (0xB76F0140), х3 = 1.96428620815277099609375E0 (0xBB6DFB3F) в ПК получается результат 6.075937747955322265625E0 (0x156EC240), а в МК - 6.0759372711181640625E0 (0x146EC240). И если кажется, что разница не велика, то опять же скажу, что вычислений много, они рекурсивные и ошибки быстро накапливаются, к тому же хотелось бы получить идентичные результаты. Программа на ПК исполнялась в Delphi, но также проверялась в Dev-C++ - результаты идентичны. Код для МК также проверялся в Keil&#39;е где эмулировался Intel 8052A и результаты такие же как в xMega. Мои подозрения в том, что в xMega и Intel числа представляются как Big endian, а в ПК little endian, однако как это проверить, а главное как это поправить, - не ясно. Может кто-нибудь сталкивался с такой проблемой? Буду признателен за любую помощь.]]></description>
        <author>vetvet</author>
        <category>Микроконтроллеры</category>
      </item>
	
      </channel>
      </rss>
	