<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Сравнение вещественных чисел.]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Сравнение вещественных чисел. форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 23 May 2026 22:48:22 +0300</pubDate>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51675/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0Uz8cCLR" href="/user/1339/" bx-tooltip-user-id="1339">Сергей</a> написал:<br />Попробовал найти разницу между x1 и x2, вот результат: x=-7.105427357601e-15<br />А вот, как выглядят вещественные числа в 17 знаками после запятой: x1=55.30000000000000426 x2=55.29999999999999716 x1*10=553.00000000000000000 x2*10=553.00000000000000000<br />В общем, проблема понятна...<br />В качестве решения, первое что приходит в голову: использовать условия только &quot;больше&quot;/&quot;меньше&quot; без равенств, и добавить некую погрешность(меньше шага цены)<br />local pogr=0.001<br />if (x1&gt;x2+pogr) then ...<br />=============<br />Кстати да тоже такое нашел как то, много думал )), теперь понятно откуда ноги растут <br />
			<i>12.01.2021 11:23:27, Евгений.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51675/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51675/topic6122/</guid>
			<pubDate>Tue, 12 Jan 2021 11:23:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51666/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Люди новые, вопросы десятилетиями одни и те же...<br /><br /><noindex><a href="https://forum.quik.ru/forum10/topic2229/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic2229/</a></noindex><br /><noindex><a href="https://forum.quik.ru/forum10/topic1881/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic1881/</a></noindex><br /><noindex><a href="https://forum.quik.ru/forum10/topic2572/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic2572/</a></noindex><br /><br />Почитайте. Там и ссылки на разные растолковывающие материалы есть. <br />
			<i>12.01.2021 07:06:10, swerg.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51666/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51666/topic6122/</guid>
			<pubDate>Tue, 12 Jan 2021 07:06:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51662/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Стандартные эпсилоны <br /><br />define(`m4_flt_epsilon&#39;,	`m4_calc(2**-23)&#39;)			# Машинный эпсилон float			(32 бита)<br />define(`m4_dbl_epsilon&#39;,	`m4_calc(2**-52)&#39;)			# Машинный эпсилон double			(64 бита)<br />define(`m4_ldbl_epsilon&#39;,	`m4_calc(2**-63)&#39;)			# Машинный эпсилон long double	(80 бит) <br />
			<i>11.01.2021 23:21:57, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51662/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51662/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 23:21:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51660/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			А зачем при вызове round(55.3, -2) параметр округления -2, если он 2. <br />
			<i>11.01.2021 21:39:08, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51660/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51660/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 21:39:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51659/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_FX2RzNTq" href="/user/1339/" bx-tooltip-user-id="1339">Сергей</a>, Эпсилон работает не в пример быстрее и не в пример надёжнее. <img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> &nbsp; <br />
			<i>11.01.2021 21:15:26, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51659/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51659/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 21:15:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51658/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oOMvGIpz" href="/user/14523/" bx-tooltip-user-id="14523">Алексей</a> написал:<br />x=tonumber(tostring(x))<br />=============<br />Это магия! )))) <br />
			<i>11.01.2021 21:05:44, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51658/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51658/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 21:05:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51657/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ну да, в динамически типизированных языках, можно после округления привести в строку, обрезать до нужной длины, а потом обратно в число. <br />
			<i>11.01.2021 20:39:33, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51657/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51657/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 20:39:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51656/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ну раз ничего логичного не помогает, то открою тебе особое секретное колдунство древних монахов lua<br /><br />Для параметра который у тебя вычисляется после вычисления примени вот такой хак<br />
====code====
<pre>x= math.ceil(price/options.price_step) * options.price_step
x=tonumber(tostring(x))
</pre>
============= <br />
			<i>11.01.2021 20:33:35, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51656/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51656/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 20:33:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51655/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_5AzgbpbU" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />local function round(num, idp)<br /> &nbsp; &nbsp;if num then<br /> &nbsp; &nbsp; &nbsp; &nbsp;local mult = 10^(idp or 0)<br /> &nbsp; &nbsp; &nbsp; &nbsp;if num &gt;= 0 then<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return math.floor(num * mult + 0.5) / mult<br /> &nbsp; &nbsp; &nbsp; &nbsp;else<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return math.ceil(num * mult - 0.5) / mult<br /> &nbsp; &nbsp; &nbsp; &nbsp;end<br /> &nbsp; &nbsp;else<br /> &nbsp; &nbsp; &nbsp; &nbsp;return num<br /> &nbsp; &nbsp;end<br />end<br />=============<br />Тоже самое, при вызове &nbsp;round(55.3, -2) в результате мусор в районе 15-го знака после запятой. Я так понимаю, этот мусор &quot;не лечится&quot;, исходя из самих принципов хранения вещественных чисел. Поэтому сейчас в код добавил некую погрешность pogr, которая меньше шага цены, но больше возможного &quot;мусора&quot;. if (x1+pogr&gt;x2) then , <br />В итоге (55.3+0.00001&gt;=55.3) -&gt; верно. <br />
			<i>11.01.2021 20:28:52, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51655/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51655/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 20:28:52 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51654/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Возьмите типовую функцию округления<br />
====code====
<pre>---@param num number
---@param idp any
local function round(num, idp)
&nbsp;&nbsp;&nbsp;&nbsp;if num then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local mult = 10^(idp or 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if num &#62;= 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return math.floor(num * mult + 0.5) / mult
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return math.ceil(num * mult - 0.5) / mult
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return num
&nbsp;&nbsp;&nbsp;&nbsp;end
end</pre>
=============
<br />И используйте<br /><br />round(round(price/options.price_step, scale) * options.price_step, scale) &gt; price1 <br />
			<i>11.01.2021 20:15:29, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51654/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51654/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 20:15:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51653/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Iw8XQBpv" href="/user/14523/" bx-tooltip-user-id="14523">Алексей</a> написал:<br />tonumber<br />=============<br />tonumber - не решил проблему. <br />
			<i>11.01.2021 20:07:49, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51653/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51653/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 20:07:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51652/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Что то мне подсказывает, что с типизацией могут быть проблемы.<br />Попробуйте<br />
====code====
<pre>if(tonumber(x1)&#62;tonumber(x2))then
else
end 
</pre>
============= <br />
			<i>11.01.2021 20:01:17, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51652/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51652/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 20:01:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51651/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Обычно, все же, применяют округление к итоговому результату.<br />У Вас math.ceil(price/options.price_step) * options.price_step есть результат работы с вещественными числами. Его и надо привести к нужной точности, а потом уже сравнивать. <br />
			<i>11.01.2021 19:58:11, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51651/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51651/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 19:58:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51650/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ну да, стандартное решение в подобных случаях - добавить некий &quot;эпсилон&quot;, очень малый по сравнению с &quot;рабочими&quot; числами&quot; <br />
			<i>11.01.2021 19:35:14, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51650/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51650/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 19:35:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51649/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Попробовал найти разницу между x1 и x2, вот результат: x=-7.105427357601e-15<br />А вот, как выглядят вещественные числа в 17 знаками после запятой: x1=55.30000000000000426 x2=55.29999999999999716 x1*10=553.00000000000000000 x2*10=553.00000000000000000<br />В общем, проблема понятна...<br />В качестве решения, первое что приходит в голову: использовать условия только &quot;больше&quot;/&quot;меньше&quot; без равенств, и добавить некую погрешность(меньше шага цены)<br />local pogr=0.001<br />if (x1&gt;x2+pogr) then ... <br />
			<i>11.01.2021 19:27:04, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51649/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51649/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 19:27:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51647/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_JBd6i2Oi" href="/user/14299/" bx-tooltip-user-id="14299">Владимир</a> написал:<br />string.format<br />=============<br />x1=55.30000 x2=55.30000 x1*10=553.00000 x2*10=553.00000<br />Равенство не срабатывает. Но если x2 полученное из math.ceil прописать явно, то работает. <br />
			<i>11.01.2021 19:10:07, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51647/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51647/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 19:10:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51646/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_RpgnAdCM" href="/user/14299/" bx-tooltip-user-id="14299">Владимир</a>, О, Господи! Вы что, на каждый чих лог открываете?! Его надо открывать ОДИН раз в начале работы скрипта и закрывать в конце. <br />
			<i>11.01.2021 19:03:30, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51646/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51646/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 19:03:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51645/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Еще одна интересная деталь, если число, которое я вычисляю, задать явно:<B> local x2=55.3</B> то всё ок.<br />А вычисляю я его округлением:
====code====
<pre>x= math.ceil(price/options.price_step) * options.price_step
</pre>
=============
 где options.price_step=0.01 <br />
			<i>11.01.2021 19:02:23, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51645/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51645/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 19:02:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51644/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_5o7rwve8" href="/user/1339/" bx-tooltip-user-id="1339">Сергей</a>, Да плевать на все &quot;шаги фьючерса&quot;! Попробуйте вывести в ветке else что-то типа:<br />F:write(string.format(&quot;x1=%1.5f x2=%1.5 x1*10=%1.5f x2*10=%1.5f\n&quot;,x1,x2,x1*10,x2*10)); <br />
			<i>11.01.2021 18:58:09, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51644/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51644/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 18:58:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51643/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			При сравнении чисел с сотыми, типа 55.31 - все работает хорошо. Может быть это как-то связано с тем, что у фьючерса шаг цены 0.01... Только как? <br />
			<i>11.01.2021 18:55:36, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51643/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51643/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 18:55:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51642/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_7KSv548d" href="/user/14299/" bx-tooltip-user-id="14299">Владимир</a> написал:<br /><noindex><a href="/user/1339/" target="_blank" rel="nofollow">Сергей</a></noindex>, А КАК ИМЕННО они &quot;в лог пишутся&quot;? Может, &quot;%1.1f&quot;? Код приведите...<br />=============<br />save_log(&quot;x1=&quot;..x1)
====code====
<pre>function save_log(st)
&nbsp;&nbsp;&nbsp;local path=getScriptPath().."&#92;&#92;"..options.script_name..".log"
&nbsp;&nbsp;&nbsp;local fn=io.open(path, "a") 
&nbsp;&nbsp;&nbsp;fn:write(st.."&#92;n")
&nbsp;&nbsp;&nbsp;fn:close()
end
</pre>
============= <br />
			<i>11.01.2021 18:51:32, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51642/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51642/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 18:51:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51641/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_seqogz1v" href="/user/1339/" bx-tooltip-user-id="1339">Сергей</a>, А КАК ИМЕННО они &quot;в лог пишутся&quot;? Может, &quot;%1.1f&quot;? Код приведите... <br />
			<i>11.01.2021 18:47:31, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51641/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51641/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 18:47:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51640/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4VWb3BHy" href="/user/14299/" bx-tooltip-user-id="14299">Владимир</a> написал:<br /><noindex><a href="/user/1339/" target="_blank" rel="nofollow">Сергей</a></noindex>, Скорее всего, никакой ошибки нет, поскольку на самом деле числа там что-то вроде 55.30001 и 55.29999 или что-то в этом роде. а вот &quot;переводить в целые и работать в целых&quot; не получится - никаких целых в этом языке просто нет. &nbsp;:: &nbsp;<br />=============<br />Тогда, что значит &quot;на самом деле&quot; ? В лог файле они именно как 55.3 пишутся, без всяких хвостов и &quot;-e&quot;. <br />И если нет никаких целых, то почему два новых числа, полученные путем умножения старых на 10, сравниваются иначе? <br />
			<i>11.01.2021 18:44:41, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51640/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51640/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 18:44:41 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51639/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_0ZuUZypn" href="/user/1339/" bx-tooltip-user-id="1339">Сергей</a>, Скорее всего, никакой ошибки нет, поскольку на самом деле числа там что-то вроде 55.30001 и 55.29999 или что-то в этом роде. а вот &quot;переводить в целые и работать в целых&quot; не получится - никаких целых в этом языке просто нет. &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> &nbsp; <br />
			<i>11.01.2021 18:40:16, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51639/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51639/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 18:40:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Сравнение вещественных чисел.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51638/topic6122/">Сравнение вещественных чисел.</a></b> <i>(55.3 &lt; 55.3)  - верно!</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<p>Здравствуйте.</p><p>При сравнении двух вещественный чисел скрипт дал неверный результат:</p><p>Первое число x1 – получено из свечи графика (.high) второе вычислено.</p><p>Оба числа одинаковые 55.3, однако при сравнении срабатывает ветка else.</p><p>if (x1&lt;=x2) then</p><p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;...</p><p>else</p><p>...</p><p>end</p><p>Так же, неправильно работают варианты:</p><p> if (x1&gt;x2) then &nbsp;(условие срабатывает, хотя числа равны)</p><p> if (x1*1&lt;=x2*1) then &nbsp;(Условие не срабатывает)</p><p>Вариант с целыми числами &nbsp;if (x1*10&lt;=x2*10) – работает корректно.</p><p> </p><p>В большинстве случаев такой проблемы не наблюдается.</p><p>Если x1 и x2 задать самостоятельно local x1=55.3 и local x2=55.3 то логика работает корректно. </p><p>Что это за ошибка и как от нее обезопаситься? Все переводить в целые и работать в целых?</p> <br />
			<i>11.01.2021 18:28:58, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51638/topic6122/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51638/topic6122/</guid>
			<pubDate>Mon, 11 Jan 2021 18:28:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
