<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Десятичные дроби?]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Десятичные дроби? форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 03 Aug 2026 03:55:22 -0400</pubDate>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278709">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я чистил файлы скриптов и вспомнил, что забыл опубликовать частично рабочую реализацию RFC8135, которая выдает вышеуказанный вывод. В основном, она использует две функции:<br /><br />`$tofloat` - преобразует строку в "fakefloat" (тип "ip6" в ROS).<br />`$fromfloat` - преобразует переменную, внутренне являющуюся типом "ip6", созданную `$tofloat`, в строку с плавающей/десятичной точкой.<br /><br />Пока что здесь НЕТ математических функций, таких как `$ADD` или `$MULTIPLY`. &nbsp;И `$fromfloat` должен принимать аргумент вроде "round=0", чтобы получить целую часть или усечь десятичную часть. &nbsp;Планирую выпустить версию 4/1 с этими функциями. &nbsp;Также использует/адаптирует следующие вспомогательные функции, которые могут быть полезнее как отдельные функции:<br /><br />`$tobase` &nbsp;`base= [1-32, optional]` - используется для преобразования из десятичной системы в шестнадцатеричную (hexstrings).<br />`$strip` &nbsp;`strip=` - используется для удаления двоеточий в IPv6-адресах.<br /><br />:global tofloat do={<br /> &nbsp; &nbsp;:global tobase;<br /> &nbsp; &nbsp;:local i;<br /> &nbsp; &nbsp;:local d;<br /> &nbsp; &nbsp;:local ip6comp 1000<br /> &nbsp; &nbsp;if ($1~"-") do={<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set ip6comp 1001<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set $1 [pick $1 1 99]<br /> &nbsp; &nbsp;}<br /> &nbsp; &nbsp;:if ([typeof $1]~("num")) do={<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set $i $1;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set $d 0;<br /> &nbsp; &nbsp;} else={ :if ([find $1 "."]&gt;0) do={<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set i [pick $1 0 [find $1 "."]]<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set d [pick $1 ([find $1 "."]+1) 64]<br /> &nbsp; &nbsp; &nbsp; &nbsp;} else={:set $i 0; set $d 0;}<br /> &nbsp; &nbsp;}<br /> &nbsp; &nbsp;:local ihex [$tobase $i]<br /> &nbsp; &nbsp;:local dhex [$tobase $d]<br /> &nbsp; &nbsp;:local float64 [:toip6 "$ip6comp:$dhex::$ihex"]<br /> &nbsp; &nbsp;#:put "$ihex $dhex $i $d $float64"<br /> &nbsp; &nbsp;:return $float64<br />}<br /><br />:global fromfloat do={<br /> &nbsp; &nbsp;:global strip<br /> &nbsp; &nbsp;:local float64 [tostr $1]<br /> &nbsp; &nbsp;:local neg ""<br /> &nbsp; &nbsp;:if ($float64~"1001.+") do={:set $neg "-"}<br /> &nbsp; &nbsp;:set $float64 [pick $float64 5 64]<br /> &nbsp; &nbsp;:local ipart [$strip char=":" [pick $float64 ([find $float64 "::"]+2) 64]]<br /> &nbsp; &nbsp;:local dpart [$strip char=":" [pick $float64 0 ([find $float64 ":"]+1)]]<br /> &nbsp; &nbsp;#if ([typeof [tonum $dpart]]!="num") do={set dpart 0}<br /> &nbsp; &nbsp;#:put "$float64 $neg $ipart $dpart"<br /> &nbsp; &nbsp;:set ipart [tonum "0x$ipart"]<br /> &nbsp; &nbsp;:set dpart [tonum "0x$dpart"]<br /> &nbsp; &nbsp;:local strfloat "$neg$ipart.$dpart"<br /> &nbsp; &nbsp;#:put "$strfloat $ipart $dpart"<br /> &nbsp; &nbsp;:return $strfloat<br />}<br /><br /># adapted from msmater <noindex><a href="http://forum.mikrotik.com/t/cleaning-characters-from-string-for-use-in-variablename/139391/1" target="_blank" rel="nofollow" >http://forum.mikrotik.com/t/cleaning-characters-from-string-for-use-in-variablename/139391/1</a></noindex><br />:global strip do={<br /> &nbsp; &nbsp;:local a [tostr $1]<br /> &nbsp; &nbsp;:local b $char<br /> &nbsp; &nbsp;:if ([typeof $b]="nil") do={:set b "-"}<br /> &nbsp; &nbsp;:while ([find $a $b]) do={<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set $a ("$[:pick $a 0 ([find $a $b]) ]"."$[:pick $a ([find $a $b]+1) ([:len $a])]")}<br /> &nbsp; &nbsp;:return $a<br />}<br /><br /><br />:global tobase do={<br /> &nbsp; &nbsp;:local decnum $1<br /> &nbsp; &nbsp;:local basenum ""<br /><br /> &nbsp; &nbsp;:if ([typeof $base]="nil") do={:local base 16} else={:local base}<br /> &nbsp; &nbsp;:if ($base&gt;0 and $base&lt;33) do={} else={:set $base 16}<br /> &nbsp; &nbsp;:local chrtable [:toarray "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f"]<br /> &nbsp; &nbsp;:local chrtable ($chrtable + [:toarray "g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"])<br /> &nbsp; &nbsp;:local basedigits 0<br /> &nbsp; &nbsp;:local basearray<br /> &nbsp; &nbsp;:local bw<br /> &nbsp; &nbsp;:local loop 1<br /> &nbsp; &nbsp;:while ($loop=1 ) do={<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:set bw 0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:for c from=0 to=$basedigits step=1 do={<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:set bw ($bw*$base)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:if ($bw=0) do={:set bw 1}<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set basearray ($basearray + [:toarray $bw])<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set bw ($decnum/$bw)<br /> &nbsp; &nbsp; &nbsp; &nbsp;:if ($bw &gt; 0) do={<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:set basedigits ($basedigits+1)<br /> &nbsp; &nbsp; &nbsp; &nbsp;} else={<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:set loop 0<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:set basedigits ($basedigits-1)<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp;}<br /> &nbsp; &nbsp;:local dn $decnum<br /> &nbsp; &nbsp;:local bpv<br /> &nbsp; &nbsp;:for c from=$basedigits to=0 do={<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set bpv ($dn/[:pick $basearray $c])<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set dn ($dn-([:pick $basearray $c]*$bpv))<br /> &nbsp; &nbsp; &nbsp; &nbsp;:set basenum "$basenum$[:pick $chrtable $bpv]"<br /> &nbsp; &nbsp;}<br /> &nbsp; &nbsp;:return $basenum<br />}<br /><br />Если вы сохраните это в маршрутизаторе как файл с именем “fakefloat”, используйте, например:<br /><br />:import fakefloat<br />:global myfloat [$tofloat -10.1]<br />:put [$fromfloat $myfloat]<br /><br /># -10.1<br /><br />С такими тестами:<br /><br />:put &nbsp;"$([$tobase 1]) $([$tobase 10]) $([$tobase 16]) $([$tobase 16 base=32])"<br /><br />:put "stripchar $([$strip char=":" "1:1:1:1" ])"<br /><br />:put [$fromfloat [toip6 "1000:1::1"]]<br />:put [$fromfloat [toip6 "1001:1::1"]]<br />:put [$fromfloat [toip6 "1000:10::10"]]<br />:put [$fromfloat [toip6 "1001:10::10"]]<br />:put [$fromfloat [:toip6 "1001:03e9::1"]]<br />:put [$fromfloat [:toip6 "1001:1::03e9"]]<br />:put [$fromfloat [:toip6 "1000:540::10f7"]]<br /><br />:put [$tofloat 0]<br />:put [$tofloat 1.1]<br />:put [$tofloat -1.1]<br />:put [$tofloat -123.-123]<br />:put [$tofloat 4343.1344]<br /><br />:put [$fromfloat [$tofloat 0]]<br />:put [$fromfloat [$tofloat 1.1]]<br />:put [$fromfloat [$tofloat -1.1]]<br />:put [$fromfloat [$tofloat -123.123]]<br />:put [$fromfloat [$tofloat 4343.1344]]<br /><br />Только протестировано на V7.x <br />
			<i>27.12.2021 01:35:00, Amm0.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278709</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278709</guid>
			<pubDate>Mon, 27 Dec 2021 01:35:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278708">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Мне сказали, что обновление ядра даст [:infinity] в v7.∞ где-то – очень разочаровывает. Более сложное решение включает в себя тип ROS’s “ip6” (и :toip6) – там есть 128 бит. Я бы сослался на стандарты интернета IETF здесь. Смотрите RFC8135: Complex Addressing in IPv6 от 1 апреля 2017 года. Видимо, кто-то задумался, что если у тебя есть тип IPv6, но нет типа “с плавающей запятой” / "десятичного" числа – как это обычно бывает в скриптах Mikrotik. Тип ip6 в Mikrotik можно перегрузить, используя идею использования типов IPv6 для чисел с плавающей запятой, поскольку он уже длиннее 128-битного целого числа. "::" может выступать в качестве десятичной точки (что позволяет распарсить и все равно остаться относительно читаемым, будучи в шестнадцатеричном виде с "::" вместо более типичной ".", или ","). Отрицательное число может начинаться с префикса 1000:: (положительное) и 1001:: (отрицательное), которые не маршрутизируются в IPv6 для использования прокси для 1K-дополнения или необходимости побитовой арифметики. Некоторые преобразования в шестнадцатеричный и добавление ":" каждые 4 шестнадцатеричных символа, с :: в качестве разделителя для целой и дробной частей, необходимо для кодирования "десятичного" числа. Некоторые биты будут потеряны в этом подходе. "::" использует 4 для 0x000 "десятичного" разделителя и еще 4 для хранения положительного/отрицательного. Но эти дополнительные биты, "потерянные" в "1K-дополнении", предлагают расширение полного набора RFC8135, подобно мнимым или "птичьим" данным, передаваемым по протоколу от RFC1149. Целая часть хранится в наименее значащих битах, поэтому 1000:8::4 равно +4.1, а 1001:2::8 равно -8.2 – поиск назад в Mikrotik быстро даст вам целую часть таким образом (кажется). Как это теоретически работает, используя тип “ip6” в Mikrotik в качестве прокси для более длинного целого числа: :put [$tofloat 0]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1000::<br />:put [$tofloat 1.1]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1000:1::1<br />:put [$tofloat -1.1]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1001:1::1<br />:put [$tofloat 4343.1344]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1000:540::10f7 Обратный процесс выглядит так: :put [$fromfloat [$tofloat 0]]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0.0<br />:put [$fromfloat [$tofloat 1.1]]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1.1<br />:put [$fromfloat [$tofloat -1.1]]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -1.1<br />:put [$fromfloat [$tofloat -123.123]]<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -123.123<br />:put [$fromfloat [$tofloat 4343.1344]]<br />				4343.1344 Хотя, конечно, простое умножение на 1000 для проксирования десятичных чисел гораздо проще. Если вам нужны более длинные числа, тип ip6 будет проще, чем попытка использовать массив для хранения частей, я думаю. У меня нет необходимости в числах с плавающей запятой в моем скрипте – "сдвиг целого числа" способом, который предлагает @msattr, вероятно, будет наилучшим. Но почитайте эту тему и вспомните про RFC8135. <br />
			<i>10.12.2021 05:34:00, Amm0.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278708</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278708</guid>
			<pubDate>Fri, 10 Dec 2021 05:34:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278707">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Но у пользователей есть надежда… Я сам умножаю значения на числа вроде 10 или 100 или 1000 и т.д., а потом выполняю расчет. Тогда я вижу количество знаков после запятой, которое я определил с помощью множителя, который использовал раньше. Как это реализовано в модуле MTTQ? Откуда берутся десятичные значения с устройств, если они в норме? <br />
			<i>08.12.2021 12:48:00, msatter.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278707</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278707</guid>
			<pubDate>Wed, 08 Dec 2021 12:48:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278706">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Никто и не обещал, что такое появится в ROSv7. <br />
			<i>08.12.2021 12:33:00, mrz.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278706</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278706</guid>
			<pubDate>Wed, 08 Dec 2021 12:33:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278705">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Разочарован. Ничего не изменилось, даже после выхода 7.1. <br />
			<i>08.12.2021 10:20:00, Jotne.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278705</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278705</guid>
			<pubDate>Wed, 08 Dec 2021 10:20:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278704">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Да, знаю, но MT мог бы добавить BC или другой Linux-инструмент в скрипт для работы с десятичными числами. Жду v 7.0. <br />
			<i>02.09.2019 16:43:00, Jotne.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278704</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278704</guid>
			<pubDate>Mon, 02 Sep 2019 16:43:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278703">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Да, только целые числа. Везде, где вы видите десятичное представление, это на самом деле строка. <br />
			<i>02.09.2019 07:55:00, mrz.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278703</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278703</guid>
			<pubDate>Mon, 02 Sep 2019 07:55:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278702">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			2019 Это все еще правда? {<br />local speed 10<br />:put $speed<br />:local speedknots ($speed * 5)<br />:put $speedknots<br />}<br />10<br />50 {<br />local speed 10<br />:put $speed<br />:local speedknots ($speed * 1.5)<br />:put $speedknots<br />}<br />10<br />Script Error: cannot multiply time interval by ip prefix {<br />local speed 10<br />:put $speed<br />:local speedknots ($speed * 1,5)<br />:put $speedknots<br />}<br />10<br />10;5 <br />
			<i>30.08.2019 15:17:00, Jotne.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278702</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278702</guid>
			<pubDate>Fri, 30 Aug 2019 15:17:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278701">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Это вычислит точные десятичные значения с любым количеством знаков после запятой. Просто введи делимое, делитель и количество знаков после запятой, и переменная $result будет установлена в ответ. # Выполняет вычисления с десятичными знаками<br /># делимое / делитель = частное.десятичные = результат<br /><br />:local dividend 3<br />:local divisor 11<br />:local decimalplaces 3<br /><br /><br /># Математическое вычисление здесь<br />:local quotient 0<br />:local remainder 0<br />:local result 0<br />:local decimal 0<br /><br />:set quotient ($dividend / $divisor)<br /><br />:if ($quotient = 0) do={<br /> &nbsp;:set dividend [:tonum ($dividend . "0")]<br />}<br /><br />:set remainder ($dividend - ($divisor * $quotient))<br /><br />:if ($remainder &gt; 0) do={<br /> &nbsp;:local tmpremainder [:tonum ($remainder . "0")]<br /> &nbsp;:for x from=1 to=$decimalplaces do={<br /> &nbsp; &nbsp;:local tmpdecimal [:tonum ($tmpremainder / $divisor)]<br /> &nbsp; &nbsp;:set decimal [:tonum ($decimal . $tmpdecimal)]<br /> &nbsp; &nbsp;:set tmpremainder [:tonum (($tmpremainder - ($tmpdecimal * $divisor)) . "0")]<br /> &nbsp;}<br /> &nbsp;:set result ($quotient . "." . $decimal)<br />} else={<br /> &nbsp;:set result $quotient<br />}<br /># КОНЕЦ Математическое вычисление здесь<br /><br />:put ($dividend . " / " . $divisor . " = " . $result) Надеюсь, это поможет. <br />
			<i>21.07.2009 22:06:00, dssmiktik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278701</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278701</guid>
			<pubDate>Tue, 21 Jul 2009 22:06:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Десятичные дроби?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278700">Десятичные дроби?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Неужели MT не поддерживает десятичные дроби?? [admin@MikroTik] interface&gt; :put (5 / 2) 2 С какого же дня 5 / 2 = 2? Я пытаюсь распарсить координаты GPS и преобразовать их обратно в десятичные. Вот пример скрипта, но дальше продвинуться не могу, потому что математика сломана.<br /><br />:global gps [/system gps monitor as-value]<br /><br />:put ($gps -&gt; "date-and-time")<br />:put ($gps -&gt; "longitude")<br /><br /># Парсинг долготы<br />:global long1 [:find ($gps -&gt; "longitude") " " 0]<br />:global long2 [:find ($gps -&gt; "longitude") " " $long1]<br />:global long3 [:find ($gps -&gt; "longitude") "'" $long2]<br />:global long4 [:find ($gps -&gt; "longitude") "''" $long3]<br /><br />:global degrees [:tonum [:pick ($gps -&gt; "longitude") $long1 $long2 ] ]<br />:global minutes [:tonum [:pick ($gps -&gt; "longitude") $long2 $long3 ] ]<br />:global seconds [:tonum [:pick ($gps -&gt; "longitude") ($long3 + 2) $long4 ] ]<br /><br />:env print<br /><br /># Должно вывести десятичную долготу.<br />:put ($degrees + ($minutes/60) + ($seconds/3600)) Получаю вот это: “gps”={“date-and-time”=“jun/11/2008 18:19:25”; “longitude”=“W 117 12’ 55’'”; “latitude”=“N 33 13’ 49’'”; “altitude”=“191.399994m”; “speed”=“0.111120 km/h”; “valid”=true} “long1”=1 “long2”=5 “long3”=8 “long4”=12 “degrees”=117 “minutes”=12 “seconds”=55 [master@cip-home] /system gps&gt; :put ($degrees + ($minutes/60) + ($seconds/3600)) 117 Что случилось с моими десятичными?! Если я смогу это заставить работать, у меня есть скрипт, который будет загружать местоположение GPS вашего роутера на серверы GpsGate.com, чтобы вы могли отслеживать местоположение всех GPS-роутеров.<br />Сэм <br />
			<i>11.06.2008 18:21:00, changeip.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278700</link>
			<guid>http://mikrotik.moscow/forum/forum57/70256-desyatichnye-drobi/message278700</guid>
			<pubDate>Wed, 11 Jun 2008 18:21:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
