<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Преобразование целого числа в строку в QUIK 8.8+]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Преобразование целого числа в строку в QUIK 8.8+ форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 14 May 2026 23:46:53 +0300</pubDate>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48618/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_THITDXPI" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a>, <br />Тема про "math.tointeger" возникла из-за появления ".0", к большим числам она не относится.<br />Автор хотел исследовать вопрос и ему было предложено такое решение для ознакомления<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_0gcYYFgv" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />С другой стороны, не очень понятно зачем вообще применять форматирование для чисел типа integer. tostring итак их выводит корректно. Если только вы не гарантируете тип integer для номера заявки. Но тогда это будет уже другой разговор<br />=============<br />применять форматирование не нужно, в той же ветке сказано что tostring будет работать с большими числами, собственно Вы и сами это говорили.<br /><br />По сути, с числами есть две проблемы, первая это появление ".0" у любых чисел, и эта проблема чинится предложенной функцией.<br />Вторая это некорректное преобразование 19ти значных дробных чисел в строку и решения для нее нет.<br />Но в практике, 19 ти значные числа есть только в номерах заявок/сделок, а для них нет никаких практических задач которые могли бы привести к преобразованию их в дробное число. <br />
			<i>24.09.2020 16:39:35, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48618/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48618/topic5791/</guid>
			<pubDate>Thu, 24 Sep 2020 16:39:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48617/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Не зачем, наверно. Но если использовать единый подход для форматирования, то он должен быть единым.<br /><br />С другой стороны, не очень понятно зачем вообще применять форматирование для чисел типа integer. tostring итак их выводит корректно.<br />Если только вы не гарантируете тип integer для номера заявки. Но тогда это будет уже другой разговор. <br />
			<i>24.09.2020 16:25:57, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48617/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48617/topic5791/</guid>
			<pubDate>Thu, 24 Sep 2020 16:25:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48615/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_Do8O9m8s" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a>, <br />Допустим. А зачем делать арифметические операции с номером заявки/сделки? <br />
			<i>24.09.2020 16:18:14, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48615/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48615/topic5791/</guid>
			<pubDate>Thu, 24 Sep 2020 16:18:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48614/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_D3b1bGCQ" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> <noindex><a href="https://forum.quik.ru/forum10/topic5119/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic5119/</a></noindex> <br />10й вопрос.<br />=============<br />Касательно предложения в 10 вопросе tostring(math.tointeger(x) or x), попробуйте данное решение на числе tostring(math.tointeger(1.16*100) or 1.16*100)<br />Увидите, что не работает. <br />
			<i>24.09.2020 16:14:19, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48614/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48614/topic5791/</guid>
			<pubDate>Thu, 24 Sep 2020 16:14:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48527/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_S6vB1l0N" href="/user/1820/" bx-tooltip-user-id="1820">Александр М</a> написал:<br /> <br />====quote====<br /><br /><br />=============<br /> Не правильно, я вообще ничего не лепил и у меня преобразования не было, но я в коде исторически использовал &quot;%.f&quot;, т.к. надеялся, что если преобразование типов случайно пройдет, то в строку не добавится &quot;.0&quot; в конце. Код .0 не добавлял, а вот сам номер изменил даже при преобразовании &nbsp;целого числа в строку, о чем я и написал.<br />=============<br />вот это &nbsp;&quot;%.f&quot; &nbsp;и есть преобразование из целого в вещественное.<br />В документации сказано: Стандартный Lua использует 64-битные целые (integer) и вещественные числа двойной точности (double 64-bit)<br /> В итоге у Вас 64 битное целое не умещается в 64 битное вещественное, т к для мантиссы всего 53 бита<br />Проблема решается если целое число преобразовать в вещественное расширенной точности &nbsp;(long double ),<br /> но &nbsp;луа не поддерживает данный &nbsp;формат, а железо поддерживает. Поэтому если надо, то пишите свою функцию на API C. <br />
			<i>22.09.2020 06:49:56, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48527/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48527/topic5791/</guid>
			<pubDate>Tue, 22 Sep 2020 06:49:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48504/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_I8mcUUjn" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/1820/" target="_blank" rel="nofollow">Александр М</a></noindex> написал:<br />В связи с переходом биржи мы дождались 19 знаков.<br /><br />Уважаемые разработчики и коллеги, может кто подскажет, почему результат разный и что надо подставить в string.format, чтобы он стал одинаковый? Как вы понимаете, необходимо, чтобы Номер заявки или сделки в виде строки всегда был нормальным числом, идентичным самому числу.<br /> &nbsp;
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;9952336732254970146&nbsp;&nbsp;
&nbsp;&nbsp;message&nbsp;&nbsp;( string.format (&nbsp;&nbsp;"%.f"&nbsp;&nbsp;,a)&nbsp;&nbsp;..&nbsp;&nbsp; " "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring(a))&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
 &nbsp;Результат: 9952336732254969856 9.952336732255e+18<br /> &nbsp;
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;1952336732254970146&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;message&nbsp;&nbsp;( string.format (&nbsp;&nbsp;"%.f"&nbsp;&nbsp;,a)&nbsp;&nbsp;..&nbsp;&nbsp; " "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring(a))
&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
 &nbsp;<br />Результат: 1952336732254970112 1952336732254970146<br /> &nbsp;
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;9952336732254970146&nbsp;&nbsp;
&nbsp;&nbsp;message&nbsp;&nbsp;( string.format (&nbsp;&nbsp;"%.d"&nbsp;&nbsp;,a)&nbsp;&nbsp;..&nbsp;&nbsp; " "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring(a))
&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
 &nbsp;Результат: &quot;bad argument #2 to &#39;format&#39; (number has no integer representation)&quot;<br />=============<br /> Правильно я понял, что Вы где надо и не надо лепили к числам &quot;.0&quot;<br />В итоге получали переполнение разрядной сетки мантиссы, т к в отличии от целого числа на нее в 64 битах меньше места?<br />Ну батенька, надо учить мат.часть.<br />=============<br />Не правильно, я вообще ничего не лепил и у меня преобразования не было, но я в коде исторически использовал &quot;%.f&quot;, т.к. надеялся, что если преобразование типов случайно пройдет, то в строку не добавится &quot;.0&quot; в конце. Код .0 не добавлял, а вот сам номер изменил даже при преобразовании &nbsp;целого числа в строку, о чем я и написал. <br />
			<i>20.09.2020 13:37:27, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48504/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48504/topic5791/</guid>
			<pubDate>Sun, 20 Sep 2020 13:37:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48501/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_f7m98YCl" href="/user/1820/" bx-tooltip-user-id="1820">Александр М</a> написал:<br />В связи с переходом биржи мы дождались 19 знаков.<br /><br />Уважаемые разработчики и коллеги, может кто подскажет, почему результат разный и что надо подставить в string.format, чтобы он стал одинаковый? Как вы понимаете, необходимо, чтобы Номер заявки или сделки в виде строки всегда был нормальным числом, идентичным самому числу.<br /> 
====code====
<pre>&nbsp;&nbsp;a =&nbsp;&nbsp;9952336732254970146 
 message ( string.format ( "%.f" ,a) .. " " .. tostring(a))&nbsp;&nbsp;</pre>
=============
 Результат: 9952336732254969856 9.952336732255e+18<br /> 
====code====
<pre>&nbsp;&nbsp;a =&nbsp;&nbsp;1952336732254970146&nbsp;&nbsp;&nbsp;&nbsp;
 message ( string.format ( "%.f" ,a) .. " " .. tostring(a))
&nbsp;&nbsp;</pre>
=============
 <br />Результат: 1952336732254970112 1952336732254970146<br /> 
====code====
<pre>&nbsp;&nbsp;a =&nbsp;&nbsp;9952336732254970146 
 message ( string.format ( "%.d" ,a) .. " " .. tostring(a))
&nbsp;&nbsp;</pre>
=============
 Результат: &quot;bad argument #2 to &#39;format&#39; (number has no integer representation)&quot;<br />=============<br />Правильно я понял, что Вы где надо и не надо лепили к числам &quot;.0&quot;<br />В итоге получали переполнение разрядной сетки мантиссы, т к в отличии от целого числа на нее в 64 битах меньше места?<br />Ну батенька, надо учить мат.часть. <br />
			<i>20.09.2020 08:04:01, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48501/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48501/topic5791/</guid>
			<pubDate>Sun, 20 Sep 2020 08:04:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48495/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_JQc3OJMV" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/1820/" target="_blank" rel="nofollow">Александр М</a></noindex> написал:<br />print(a)print(tostring(a))print(a+1)print(tostring(a+1))<br />=============<br /> сделал так:<br /> а=9152336732254970146<br /> print(a)<br />print(tostring(a))<br />---------------------<br />результат:<br />9152336732254970146<br />9152336732254970146<br />----------------<br />что не так?<br />=============<br />Пока тип не поменялся, все tostring() работает корректно, я выше уже написал. Теперь надо следить за этим в коде, т.к. если он изменится, то преобразование числа в строку дает или неправильное значение или вообще с e+...<br />Выше я продемонстрировал. Я в своем коде проблему решил, просто проверил все места, где смотрится или преобразовывается номера заявок или сделок. <br />
			<i>19.09.2020 18:30:05, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48495/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48495/topic5791/</guid>
			<pubDate>Sat, 19 Sep 2020 18:30:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48451/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_QO66X12n" href="/user/1820/" bx-tooltip-user-id="1820">Александр М</a> написал:<br />print(a)print(tostring(a))print(a+1)print(tostring(a+1))<br />=============<br />сделал так:<br /> а=9152336732254970146<br /> print(a)<br />print(tostring(a))<br />---------------------<br />результат:<br />9152336732254970146<br />9152336732254970146<br />----------------<br />что не так? <br />
			<i>18.09.2020 07:39:07, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48451/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48451/topic5791/</guid>
			<pubDate>Fri, 18 Sep 2020 07:39:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48370/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_T3jLQyr0" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Только сейчас увидел, что Вы пытаетесь сделать.<br />lua не может преобразовать double с таким числом цифр как 9152336732254970146.0<br /><br />4-ое издание Programming in Lua, глава 4 ( <noindex><a href="https://www.moys.gov.iq/upload/common/Programming_in_Lua%2C_4th_ed._%282017%29_.pdf" target="_blank" rel="nofollow">https://www.moys.gov.iq/upload/common/Programming_in_Lua%2C_4th_ed._%282017%29_.pdf</a></noindex> )<br /><br />For floating-point numbers, Standard Lua uses double precision. It represents each number with 64 bits, 11of which are used for the exponent. &nbsp;Double-precision floating-point numbers can represent numbers withroughly 16 significant decimal digits, in a range from -10308 to 10308. &nbsp;(Small Lua uses single-precisionfloats, with 32 bits. In this case, the range is from -1038 to 1038, with roughly seven significant decimaldigits.)<br /><br />Any &nbsp;integer &nbsp;up &nbsp;to &nbsp;2^53 &nbsp;(which &nbsp;is &nbsp;9007199254740992) &nbsp;has &nbsp;an &nbsp; exact &nbsp;representation &nbsp;as &nbsp;a &nbsp;double-precisionfloating-point number. &nbsp;Integers with larger absolute values may lose precision when converted &nbsp;to a float.<br /><br />Поэтому если число имеет тип math.type = integer, то до 2^53 (9007199254740992) нет проблем представления. А если это уже double, то его не будет.<br />=============<br />Специально я не пытаюсь, я боюсь, чтобы случайно преобразования не было, иначе беда. Причем, если она случилась, то она не лечится, номер изменится. <br />
			<i>15.09.2020 19:33:35, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48370/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48370/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 19:33:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48365/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Только сейчас увидел, что Вы пытаетесь сделать.<br />lua не может преобразовать double с таким числом цифр как 9152336732254970146.0<br /><br />4-ое издание Programming in Lua, глава 4 (<noindex><a href="https://www.moys.gov.iq/upload/common/Programming_in_Lua%2C_4th_ed._%282017%29_.pdf" target="_blank" rel="nofollow">https://www.moys.gov.iq/upload/common/Programming_in_Lua%2C_4th_ed._%282017%29_.pdf</a></noindex>)<br /><br />For floating-point numbers, Standard Lua uses double precision. It represents each number with 64 bits, 11of which are used for the exponent. <B>Double-precision floating-point numbers can represent numbers withroughly 16 significant decimal digits, in a range from -10308 to 10308. </B>(Small Lua uses single-precisionfloats, with 32 bits. In this case, the range is from -1038 to 1038, with roughly seven significant decimaldigits.)<br /><br />Any &nbsp;integer &nbsp;up &nbsp;to &nbsp;2^53 &nbsp;(which &nbsp;is &nbsp;9007199254740992) &nbsp;has &nbsp;an &nbsp; exact &nbsp;representation &nbsp;as &nbsp;a &nbsp;double-precisionfloating-point number. &nbsp;Integers with larger absolute values may lose precision when converted &nbsp;to a float.<br /><br />Поэтому если число имеет тип math.type = integer, то до 2^53 (9007199254740992) нет проблем представления. А если это уже double, то его не будет. <br />
			<i>15.09.2020 16:25:47, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48365/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48365/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 16:25:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48364/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Выше пример преобразования числа без потери точности (поэтому format с ним справляется)<br />А это с потерей точности:<br />
====code====
<pre>a = 1952336732254970146
b = a + 0.0
print(a == b)</pre>
============= <br />
			<i>15.09.2020 16:23:25, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48364/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48364/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 16:23:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48363/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_DHtqrZiz" href="/user/1820/" bx-tooltip-user-id="1820">Александр М</a> написал:<br />проблему не решило, если произошло изменение типа<br />=============<br />При преобразовании в double произошла потеря точности. Первоначальное значение никакими ухищрениями уже не вернуть.<br />
====code====
<pre>a = 1952336732254970112
b = a + 0.0
print(a == b)</pre>
============= <br />
			<i>15.09.2020 16:18:14, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48363/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48363/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 16:18:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48357/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_3Sf4XFeV" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/1820/" target="_blank" rel="nofollow">Александр М</a></noindex> написал:<br />Что еще предложите?<br />=============<br /> Предлагаем быть более внимательным в передаче параметров в функцию.<br />от куда у Вас возьмется параметр &quot;x&quot; если есть только переменная &quot;a&quot;?<br />=============<br />Согласен, моя ошибка. Правда проблему не решило, если произошло изменение типа:<br />
====code====
<pre>local function tostringEX(x)
return tostring(math.tointeger(x) or x)
end

a=1952336732254970146.0
message(tostringEX(a).." "..tostring(a))</pre>
=============
<br />Результат: 1952336732254970112 1.952336732255e+18<br /><br />Если изменения типа не было, то там и tostring() прекрасно работает. <br />
			<i>15.09.2020 15:38:31, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48357/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48357/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 15:38:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48355/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0Bvf106l" href="/user/1820/" bx-tooltip-user-id="1820">Александр М</a> написал:<br />Что еще предложите?<br />=============<br />Предлагаем быть более внимательным в передаче параметров в функцию.<br />от куда у Вас возьмется параметр "x" если есть только переменная "a"? <br />
			<i>15.09.2020 15:12:22, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48355/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48355/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 15:12:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48354/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_vfU4Fz1X" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Попробуйте использовать паттерн &quot;%.0f&quot;.<br />=============<br />Пробовал, он аналогичен самому первому примеру. <br />
			<i>15.09.2020 15:07:18, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48354/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48354/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 15:07:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48344/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Попробуйте использовать паттерн &quot;%.0f&quot;. <br />
			<i>15.09.2020 12:43:04, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48344/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48344/topic5791/</guid>
			<pubDate>Tue, 15 Sep 2020 12:43:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48325/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Тему можно закрывать, как результат проверки работает криво, поэтому до преобразования типа доводить нельзя иначе все числа едут. <br />
			<i>14.09.2020 21:35:44, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48325/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48325/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 21:35:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48322/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_m2YOm6zC" href="/user/1820/" bx-tooltip-user-id="1820">Александр М</a> написал:<br />Пока получается, что лучше всего работает это:<br /> 
====code====
<pre>&nbsp;&nbsp;a =&nbsp;&nbsp;9152336732254970146 
 message ( string.format ( "%.d" ,a) .. " " .. tostring(a))&nbsp;&nbsp;</pre>
=============
 <br />Результат: 9152336732254970146 9152336732254970146<br />=============<br />данный вариант всем хорош, НО, если вдруг число стало не целым, то:<br />
====code====
<pre>a=9152336732254970146.0
message(string.format("%.d",a).." "..tostring(a))</pre>
=============
<br />Результат: 9152336732254969856 9.152336732255e+18 <br />
			<i>14.09.2020 20:32:20, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48322/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48322/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 20:32:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48321/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_cln4ekLg" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />а можно подробнее про ошибку.<br />у меня Lua 5.3 работает корректно<br />вот пример:<br />a=1952336732254970146<br />print(a)<br />print(tostring(a))<br />print(a+1)<br />print(tostring(a+1))<br />-------<br />результат:<br />1952336732254970146<br />1952336732254970146<br />1952336732254970147<br />1952336732254970147<br />---------------- &nbsp;<br />что не так?<br />=============<br />Внимательно посмотрите все мои варианты и сделайте ваш пример для числа 9152336732254970146 <br />
			<i>14.09.2020 20:30:32, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48321/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48321/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 20:30:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48319/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			а можно подробнее про ошибку.<br />у меня Lua 5.3 работает корректно<br />вот пример:<br />a=1952336732254970146<br />print(a)<br />print(tostring(a))<br />print(a+1)<br />print(tostring(a+1))<br />-------<br />результат:<br />1952336732254970146<br />1952336732254970146<br />1952336732254970147<br />1952336732254970147<br />---------------- &nbsp;<br />что не так? <br />
			<i>14.09.2020 19:38:12, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48319/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48319/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 19:38:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48318/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Пока получается, что лучше всего работает это:<br />
====code====
<pre>a=9152336732254970146
message(string.format("%.d",a).." "..tostring(a))</pre>
=============
<br />Результат: 9152336732254970146 9152336732254970146 <br />
			<i>14.09.2020 19:25:37, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48318/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48318/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 19:25:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48317/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_F4ORhpy0" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />тут надо заметить что метод работать только для чисел меньше 9223372036854775807<br /> <br />====quote====<br /><noindex><a href="/user/17/" target="_blank" rel="nofollow">Sergey Gorokhov</a></noindex> написал:<br /> &nbsp;<noindex><a href="https://forum.quik.ru/forum10/topic5119/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic5119/</a></noindex> &nbsp;<br />10й вопрос.<br />=============<br /> <br />=============<br /><br />Что еще предложите?<br /><br />
====code====
<pre>local function tostringEX(x)
return tostring(math.tointeger(x) or x)
end

a=1952336732254970146
message(tostringEX(x).." "..tostring(a))
</pre>
=============
<br />Результат: nil 1952336732254970146 <br />
			<i>14.09.2020 19:21:11, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48317/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48317/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 19:21:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48316/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			тут надо заметить что метод работать только для чисел меньше 9223372036854775807<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_9Pc2R7D3" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> <noindex><a href="https://forum.quik.ru/forum10/topic5119/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic5119/</a></noindex> <br />10й вопрос.<br />=============<br /> <br />
			<i>14.09.2020 19:17:35, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48316/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48316/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 19:17:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48315/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/forum10/topic5119/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic5119/</a></noindex><br />10й вопрос. <br />
			<i>14.09.2020 19:12:05, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48315/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48315/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 19:12:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48314/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Для кучи добавлю еще вариант<br />
====code====
<pre>a=1952336732254970146
message(string.format("%.d",a).." "..tostring(a))
</pre>
=============
Результат: 1952336732254970146 1952336732254970146<br /><br />Все вроде хорошо, но 3-й результат предыдущего сообщения все портит. <br />
			<i>14.09.2020 19:11:27, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48314/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48314/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 19:11:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Преобразование целого числа в строку в QUIK 8.8+</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48312/topic5791/">Преобразование целого числа в строку в QUIK 8.8+</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В связи с переходом биржи мы дождались 19 знаков.<br /><br />Уважаемые разработчики и коллеги, может кто подскажет, почему результат разный и что надо подставить в string.format, чтобы он стал одинаковый? Как вы понимаете, необходимо, чтобы Номер заявки или сделки в виде строки всегда был нормальным числом, идентичным самому числу.<br />
====code====
<pre>a=9952336732254970146
message(string.format("%.f",a).." "..tostring(a))</pre>
=============
Результат: 9952336732254969856 9.952336732255e+18<br />
====code====
<pre>a=1952336732254970146&nbsp;&nbsp;&nbsp;
message(string.format("%.f",a).." "..tostring(a))
</pre>
=============
<br />Результат: 1952336732254970112 1952336732254970146<br />
====code====
<pre>a=9952336732254970146
message(string.format("%.d",a).." "..tostring(a))
</pre>
=============
Результат: &quot;bad argument #2 to &#39;format&#39; (number has no integer representation)&quot; <br />
			<i>14.09.2020 19:04:40, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48312/topic5791/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48312/topic5791/</guid>
			<pubDate>Mon, 14 Sep 2020 19:04:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
