Страница 1 из 1

научим микротик делить? )))

Добавлено: 21 окт 2014, 13:06
vqd
Честно скажу стало полной неожиданностью. Оказывается микротик не умеет работать с дробными числами.
А мне надо число (в том числе и дробное) разделить на целое и соответственно получить результат. Пусть даже а двух переменных.

Кто готов мозг размять и предложить оптимальный алгоритм ? ))))
Я тут усердно вспоминаю институт где учили делить вычитанием. Но чет я так не понял как этим вычитанием поделить дробное число и вообще получить результат с округлением до 6-ти знаков

Re: научим микротик делить? )))

Добавлено: 21 окт 2014, 16:22
Dragon_Knight
Помню подобное пытался где-то сделать, когда стандартные средства выдавали следующее: 5.0/2.0 = 2,499999..99
В итоге выкрутился методом разбора чисел до запятой и после и считал по отдельности, + огромная куча условий... Но это изврат.

Re: научим микротик делить? )))

Добавлено: 21 окт 2014, 16:49
vqd
С целыми числами победил с "округлением" до 6-ти знаков

Что надо дробное на целое поделить и усе.

Re: научим микротик делить? )))

Добавлено: 21 окт 2014, 16:55
podarok66
Мы делали деление, это такая возня... Где-то был скрипт перевода байт в килобайты, мегабайты и гигабайты. Но там всегда был известен до написания скрипта делитель.

Код: Выделить всё

:local rxreport [/file get [/file find name=rx.txt] content];
:local simplKbrxreport ($rxreport / 1024);
:local lowKbrxreport ((($rxreport - ($simplKbrxreport * 1024)) * 1000) / 1024);
:local Kbrxreport ("$[$simplKbrxreport]".",".[:pick "$[$lowKbrxreport]" 0 2] );
:put $Kbrxreport
:local simplMbrxreport ($rxreport / 1048576);
:local lowMbrxreport  ((($rxreport - ($simplMbrxreport * 1048576)) * 1000000) /  1048576);
:local Mbrxreport ("$[$simplMbrxreport]".",".[:pick "$[$lowMbrxreport]" 0 2] );
:put $Mbrxreport;
:local simplGbrxreport ($rxreport / 1073741824);
:local lowGbrxreport  ((($rxreport - ($simplGbrxreport * 1073741824)) * 1000000000) /  1048576);
:local Gbrxreport ("$[$simplGbrxreport]".",".[:pick "$[$lowGbrxreport]" 0 2] );
:put $Gbrxreport;

Точность две цифры после запятой без округления...
А вот деление на дробное не выполняли.

Re: научим микротик делить? )))

Добавлено: 21 окт 2014, 17:48
vqd
не перестаю материть периодически разработчиков. Некоторые ограничения просто железку деревянной делаю (((