<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Шаг сетчика в операторе for]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Шаг сетчика в операторе for форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 22 Apr 2026 07:06:03 +0300</pubDate>
		<item>
			<title>Шаг сетчика в операторе for</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66140/topic7670/">Шаг сетчика в операторе for</a></b> <i>Некорректная работа оператора for при нецелочисленном шаге</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			например так:<br />for x=1,2.05,0.1 do &nbsp;print(&quot;x=&quot;..x) end<br />------------<br />x=1.0<br />x=1.1<br />x=1.2<br />x=1.3<br />x=1.4<br />x=1.5<br />x=1.6<br />x=1.7<br />x=1.8<br />x=1.9<br />x=2.0<br />----------------- <br />
			<i>11.10.2022 14:19:18, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66140/topic7670/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66140/topic7670/</guid>
			<pubDate>Tue, 11 Oct 2022 14:19:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Шаг сетчика в операторе for</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66139/topic7670/">Шаг сетчика в операторе for</a></b> <i>Некорректная работа оператора for при нецелочисленном шаге</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			чтобы было &nbsp;правильно ,<br /> надо изменить границу цикла, чтобы результат проверялся не на равно.<br />как правило путем добавления половины шага <br />
			<i>11.10.2022 14:17:33, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66139/topic7670/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66139/topic7670/</guid>
			<pubDate>Tue, 11 Oct 2022 14:17:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Шаг сетчика в операторе for</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66137/topic7670/">Шаг сетчика в операторе for</a></b> <i>Некорректная работа оператора for при нецелочисленном шаге</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			вообще-то &nbsp;,<br /> обычно в букварях по программированию предупреждают,<br /> что не надо использовать точное сравнение для вещественных чисел.<br />чтобы не было мучительно больно. <br />
			<i>11.10.2022 14:13:36, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66137/topic7670/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66137/topic7670/</guid>
			<pubDate>Tue, 11 Oct 2022 14:13:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Шаг сетчика в операторе for</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66136/topic7670/">Шаг сетчика в операторе for</a></b> <i>Некорректная работа оператора for при нецелочисленном шаге</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_KcSbD9t9" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Сегодня столкнулся с некорректной работой оператора for, если задать не целочисленный шаг счетчика<br /><br />Простой пример<br /> 
====code====
<pre>&nbsp;&nbsp; for&nbsp;&nbsp;x =&nbsp;&nbsp;1 , 2 , 0.1&nbsp;&nbsp; do 
&nbsp;&nbsp;message ( "x="&nbsp;&nbsp;.. x)
 end 
&nbsp;&nbsp;</pre>
=============
 Логично ожидать перебор значений от 1 до 2 включительно с шагом 0.1<br />Однако перебор значений идет от 1 только до 1.9<br /><br /><br />=============<br />В данном случае на последнем шаге получается x=2.0+8.8817841970013e-016 &nbsp; <br />
			<i>11.10.2022 14:10:47, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66136/topic7670/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66136/topic7670/</guid>
			<pubDate>Tue, 11 Oct 2022 14:10:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Шаг сетчика в операторе for</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66126/topic7670/">Шаг сетчика в операторе for</a></b> <i>Некорректная работа оператора for при нецелочисленном шаге</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Арифметика арифметика чисел с плавающей запятой работает с некоторой точностью. Поэтому при сложении выходит, например не 2, а 2.0000000001.<br />Необходимо, либо делать свой итератор, либо добавляйте дельту погрешности меньше шага для гарантированного включения числа в перебор. <br />
			<i>11.10.2022 09:07:25, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66126/topic7670/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66126/topic7670/</guid>
			<pubDate>Tue, 11 Oct 2022 09:07:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Шаг сетчика в операторе for</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66122/topic7670/">Шаг сетчика в операторе for</a></b> <i>Некорректная работа оператора for при нецелочисленном шаге</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Сегодня столкнулся с некорректной работой оператора for, если задать не целочисленный шаг счетчика<br /><br />Простой пример<br />
====code====
<pre>for x=1,2,0.1 do
 message("x="..x)
end
</pre>
=============
Логично ожидать перебор значений от 1 до 2 включительно с шагом 0.1<br />Однако перебор значений идет от 1 только до 1.9<br /><br />Пришлось выкручиваться костылем, типа такого<br />
====code====
<pre>for x=10,20,1 do
 message("x="..x/10)
end</pre>
=============
<br />Причем косячит не для всех шагов, например при шаге 0.2 все корректно.<br /><br /><br />QUIK 9.7.1.10 <br />
			<i>10.10.2022 21:39:48, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66122/topic7670/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66122/topic7670/</guid>
			<pubDate>Mon, 10 Oct 2022 21:39:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
