Téma: Matematicke zaokruhlovanie
Dobry den,
ako sa da v SDS-C matematicky zaohruhlovat?
(t.j. ak cislo > 5 tak nahor, inak nadol)
vopred vdaka.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz
Network Monitoring System - SDS - Síťový Dohledový Systém
Nejste přihlášen. Přihlaste se, nebo se zaregistrujte.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » SDS-C Programy » Matematicke zaokruhlovanie
Stránky 1
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
Dobry den,
ako sa da v SDS-C matematicky zaohruhlovat?
(t.j. ak cislo > 5 tak nahor, inak nadol)
vopred vdaka.
Na wiki SDS jsem nenašel ani round ani ceil ....
Myslím, že je lepší data ponechat v původní hodnotě a až při zobrazení použít v PHP matematické funkce:
echo round(3.4); // 3
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.8765, 2); // 1.88
echo round(1241, -3); // 1000
echo round(5.045, 2); // 5.05
echo ceil (10.1); //11
echo ceil (10.5); //11
To co je vypsáno v předchozím příspěvku se týká PHP, nikoliv ale SDS-C.
SDS-C pracuje pouze s celými čísly.
Návod jak si "pomoct" pokud je potřeba pracovat s desetinnými čísly je na WiKi. Prakticky jde o to, že se hodnota vynásobí deseti, stem, atd. podle toho na kolik míst je potřeba přesnost.
Zaokrouhlovaní - je potřeba uvést více informací.
Každopádně, pokud je možnost přenést zpracovávání na server (kde se dá spustit PHP), pak by složité výpočty raději dělal na serveru.
To co je vypsáno v předchozím příspěvku se týká PHP, nikoliv ale SDS-C.
SDS-C pracuje pouze s celými čísly.
Návod jak si "pomoct" pokud je potřeba pracovat s desetinnými čísly je na WiKi. Prakticky jde o to, že se hodnota vynásobí deseti, stem, atd. podle toho na kolik míst je potřeba přesnost.
Zaokrouhlovaní - je potřeba uvést více informací.
Každopádně, pokud je možnost přenést zpracovávání na server (kde se dá spustit PHP), pak by složité výpočty raději dělal na serveru.
Každopádně souhlas, výpočty dělat až na serveru kam přenáším data. Buď přímo za běhu php nebo uložením do db a následným zpracováním. Možností je několik.
Já bych však potřeboval vyřešit případ, když do sds pošlu pro sys[140] číslo 123456789 jak jej rozdělit např. po trojicích, tedy abych dostal 3 proměnné, jejichž x=123, y=456, z=789
Díky,
L.
Tohle by mohlo pomoct: http://forum.merenienergie.cz//viewtopic.php?id=359
Čili neco jako:
_prvnitrojka=sys[141]/1000000;
_pom=sys[141] % 1000000;
_druhatrojka=_pom/1000;
_tretitrojka=_pom % 1000;Čili neco jako:
_prvnitrojka=sys[141]/1000000; _pom=sys[141] % 1000000; _druhatrojka=_pom/1000; _tretitrojka=_pom % 1000;
JJ, díky již jsem vyřešil ..
vezmi_udaje_145
{
var test1 test2 test22 test3;
if (sys[145] == 0) return; // neni-li sys[140] nulove ...
test1 = sys[145] / 1000000;
test22 = sys[145] / 1000;
test2 = test22 % 1000;
test3 = sys[145] % 1000;
echo ('Doslo ke zmene z http sys145 dostal jsem 'sys[145],' ',sys[5],'.',sys[6],'.',sys[7],' - ',sys[8] ,':',sys[9],':',sys[10]);
echo ('test1 je 'test1);
echo ('test2 je 'test2);
echo ('test3 je 'test3);
sys[145] = 0; // prave jsem to zapsal, takze at se mi ten zapis porad neopakuje
return;
}
výpis konzole ..
Doslo ke zmene z http sys145 dostal jsem 123456789 1.1.2013 - 17:25:22
test1 je 123
test2 je 456
test3 je 789
L.
Stránky 1
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » SDS-C Programy » Matematicke zaokruhlovanie