<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Ошибки вычисления с плавающей точкой в LUA.]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Ошибки вычисления с плавающей точкой в LUA. форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 10 Apr 2026 09:12:42 +0300</pubDate>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16946/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Есть прекрасная статья - ну кто хочет разобраться, конечно, а не готовый рецепт получить, а потом удивляться, почему он не работает у меня. (ответ: потому что не подходит)<br /><br /><noindex><a href="http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374" target="_blank" rel="nofollow">http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374</a></noindex><br /><br />Важно осознать что там вовсе не про дельфи. Всё описанное там не зависит от языка вообще, это особенность представления в двоичном компьютере (а других у нас нет) так называемых &quot;чисел с плавающей точкой&quot;.<br /><br />Для Lua - разумеется тоже подходит с той лишь поправкой, что в том Lua, который у нас есть в рамках QUIK, &nbsp;у нас в принципе всего один тип числовых переменных, и это - Double. <br />
			<i>22.06.2016 22:47:31, swerg.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16946/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16946/topic1881/</guid>
			<pubDate>Wed, 22 Jun 2016 22:47:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16835/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td><span class="bx-font" style="color:silver"><B>Николай &nbsp;Камынин</B>, предлагаю воздерживаться от постов, не несущих никакой смысловой нагрузки.</span></td></tr></tbody></table><br /><a class="blog-p-user-name" id="bp_RQbvFLBE" href="/user/1110/" bx-tooltip-user-id="1110">Денис</a>, 
====code====
<pre>nul = 0.000000001
function math.compare(x, y)
&nbsp;&nbsp;return math.abs(x - y) &#60; nul
end
</pre>
============= <br />
			<i>17.06.2016 22:54:59, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16835/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16835/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 22:54:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16833/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ieBlfUAC" href="/user/1604/" bx-tooltip-user-id="1604">Вячеслав +</a> написал:<br />Уже спрашивал подобное.<br /> <noindex><a href="https://forum.quik.ru/messages/forum10/message15026/topic1654/#message15026" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message15026/topic1654/#message15026</a></noindex> <br />Это проблема не Quik'а, а операций с плавающей точкой, и актуально это для всех низкоуровневых языков программирования<br />=============<br />это проблема не квик и не низкоуровневых языков, это проблема лишь дилетантов, а у знающих - это особенность хранения числе с плавающей точкой. <br />---------------------------------------------------------------------------------------------------<br /><noindex><a href="https://forum.quik.ru/user/1110/" target="_blank" rel="nofollow">Денис</a></noindex>,<br />читайте учебники, а не гордитесь собственным невежеством. <br />
			<i>17.06.2016 18:57:45, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16833/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16833/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 18:57:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16825/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Уже спрашивал подобное.<br /><noindex><a href="https://forum.quik.ru/messages/forum10/message15026/topic1654/#message15026" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message15026/topic1654/#message15026</a></noindex><br />Это проблема не Quik'а, а операций с плавающей точкой, и актуально это для всех низкоуровневых языков программирования <br />
			<i>17.06.2016 17:14:27, Вячеслав +.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16825/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16825/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 17:14:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16806/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_iCLak4op" href="/user/1110/" bx-tooltip-user-id="1110">Денис</a> написал:<br />Садитесь, два и больше глупости не пишите.<br /><br />Следующий после вас человек дал хороший ответ. Спасибо ему за это! Посмотрю как сравнивать с заданной точностью.<br />=============<br />Вообще-то это два ответа об одном и том же.<br />Но узнать (и осознать) это станет возможно только после следования первому совету. <br />
			<i>17.06.2016 11:15:15, Imersio Arrigo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16806/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16806/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 11:15:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16805/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_VMMx5JL7" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Здравствуйте,<br />Числа с плавающей точкой нужно сравнивать с заданной точностью.<br />Это особенность типа данных, про которую в интернете очень много статей<br />=============<br />Спасибо! <br />
			<i>17.06.2016 11:14:37, Денис.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16805/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16805/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 11:14:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16804/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_8gigKtNO" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br /><br />====quote====<br /> Денис &nbsp; написал:<br />Если более конкретно, берем цену из Квика, прибавляем шаг цены инструмента, сравниваем со следующей ценой, а они не равны. <br /><br />Как вы боретесь с такой бедой?<br />=============<br />вообще-то, это простейшая задача для обучающегося программированию.<br />Посмотрите учебники по программированию,<br /> оно конечно читать надобно.<br />=============<br />Вообще-то такое решение никому не интересно, писать собственный оператор для умножения чисел. Нафиг тогда нужен оператор умножения, если свой писать нужно. Интересуют естественно встроенные возможности языка. Садитесь, два и больше глупости не пишите.<br /><br />Следующий после вас человек дал хороший ответ. Спасибо ему за это! Посмотрю как сравнивать с заданной точностью. <br />
			<i>17.06.2016 11:13:53, Денис.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16804/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16804/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 11:13:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16802/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте,<br />Числа с плавающей точкой нужно сравнивать с заданной точностью.<br />Это особенность типа данных, про которую в интернете очень много статей <br />
			<i>17.06.2016 10:51:13, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16802/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16802/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 10:51:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16801/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_TnsaIto1" href="/user/1110/" bx-tooltip-user-id="1110">Денис</a> написал:<br />Если более конкретно, берем цену из Квика, прибавляем шаг цены инструмента, сравниваем со следующей ценой, а они не равны. <br /><br />Как вы боретесь с такой бедой?<br />=============<br />вообще-то, это простейшая задача для обучающегося программированию.<br />Посмотрите учебники по программированию,<br /> оно конечно читать надобно. <br />
			<i>17.06.2016 10:48:02, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16801/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16801/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 10:48:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16796/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Если более конкретно, берем цену из Квика, прибавляем шаг цены инструмента, сравниваем со следующей ценой, а они не равны. <br /><br />Как вы боретесь с такой бедой? <br />
			<i>17.06.2016 09:00:15, Денис.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16796/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16796/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 09:00:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16795/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Собственно проблемы практического плана возникают в таких местах:
====code====
<pre>124.4==(124.3+0.1)
</pre>
=============
Результат: false <br />
			<i>17.06.2016 08:56:52, Денис.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16795/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16795/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 08:56:52 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки вычисления с плавающей точкой в LUA.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message16794/topic1881/">Ошибки вычисления с плавающей точкой в LUA.</a></b> <i>LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Нет, я все понимаю, деление или умножение чисел с плавающей точкой могут приводит к бесконечным десятичным дробям и соответственно ошибкам округления. <br /><br />Но здесь!
====code====
<pre>x = tonumber(124.4 - 124.3);
</pre>
=============
Результат: x = 0.10000000000001 <br /><br />И что делать то?<span class="bx-font" style="color:#000080"><br /></span> <br />
			<i>17.06.2016 08:47:09, Денис.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message16794/topic1881/</link>
			<guid>http://forum.quik.ru/messages/forum10/message16794/topic1881/</guid>
			<pubDate>Fri, 17 Jun 2016 08:47:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
