Programmer Guide/Command Reference/NUM: Difference between revisions
From STX Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
| Line 15: | Line 15: | ||
::;hexa-decimal numbers:<code>0x1234, 0xabc, 0XabC</code> | ::;hexa-decimal numbers:<code>0x1234, 0xabc, 0XabC</code> | ||
::;special constants:<code>pi</code> (=3.1415...), <code>e</code> (=2.71828...), | ::;special constants:<code>pi</code> (=3.1415...), <code>e</code> (=2.71828...), | ||
:::<code>rand</code> (a linear distributed pseudo random number ''r'' | :::<code>rand</code> (a linear distributed pseudo random number ''r''; -1≤''r''<1) | ||
:::<code>lran</code> (a linear distributed pseudo random number ''r'' | :::<code>lran</code> (a linear distributed pseudo random number ''r''; 0≤''r''<1) | ||
::;numerical operators:<code>-''a''</code> (negate), <code>''a''+''b''</code> (add), <code>''a''-''b''</code> (subtract), <code>''a''*''b''</code> (multiply), <code>''a''/''b''</code> (divide), <code>''a''%''b''</code> (modulo), <code>''a''^''b'' (power)</code> | ::;numerical operators:<code>-''a''</code> (negate), <code>''a''+''b''</code> (add), <code>''a''-''b''</code> (subtract), <code>''a''*''b''</code> (multiply), <code>''a''/''b''</code> (divide), <code>''a''%''b''</code> (modulo), <code>''a''^''b'' (power)</code> | ||
::;logical operators (bitwise): <code>!''a</code> (not), <code>''a''&''b''</code> (and), <code>''a''|''b''</code> (or), <code>''a''^''b''</code> (exclusive or) | ::;logical operators (bitwise): <code>!''a</code> (not), <code>''a''&''b''</code> (and), <code>''a''|''b''</code> (or), <code>''a''^''b''</code> (exclusive or) | ||
| Line 22: | Line 22: | ||
::;functions: | ::;functions: | ||
::{class="einrahmen" | ::{class="einrahmen" | ||
|<code>setlran(''seed'')</code>linear distributed pseudo random number ''r'' (0≤''r''<1)<BR>''seed'' is the start value (0≤''seed''<<1) | |||
| | | | ||
|- | |||
|} | |||
_T("RAND"), _T("LRAN"), _T("SETLRAN"), _T("SIN"), _T("COS"), // 00-04 | |||
_T("TAN"), _T("ASIN"), _T("ACOS"), _T("ATAN"), _T("EXP"), // 05-09 | |||
_T("LOG"), _T("LN"), _T("SQRT"), _T("ABS"), _T("INT"), // 10-14 | |||
_T("ROUND"), _T("DB"), _T("SINX"), _T("SINC"), _T("SIGN"), // 15-19 | |||
_T("HZ2BARK"), _T("BARK2HZ"), _T("BIT"), _T("FLOOR"), _T("ISERR"), // 20-24 | |||
_T("ISERROR"), _T("ISWARNING"),_T("ISWARN"), _T("NPOW2"), | |||
Revision as of 09:59, 26 April 2011
| command | return value | value of RC |
|---|---|---|
NUM expression
|
value of expression or empty string if the evaluation fails |
0 error code |
NUMCHECK expression
|
value of expression or empty string if the evaluation fails |
0 warning code |
- Description
- The expression will be evaluated numerically, and the result (textual representation) will be returned. The expression may consist of the following parts:
- decimal numbers
123.456, 17.5e3, 100, -312.123, 1e-3- hexa-decimal numbers
0x1234, 0xabc, 0XabC- special constants
pi(=3.1415...),e(=2.71828...),rand(a linear distributed pseudo random number r; -1≤r<1)lran(a linear distributed pseudo random number r; 0≤r<1)- numerical operators
-a(negate),a+b(add),a-b(subtract),a*b(multiply),a/b(divide),a%b(modulo),a^b (power)- logical operators (bitwise)
!a(not),a&b(and),a|b(or),a^b(exclusive or)- brackets
(expression)- functions
- {class="einrahmen"
|setlran(seed)linear distributed pseudo random number r (0≤r<1)
seed is the start value (0≤seed<<1)
|
|-
|}
_T("RAND"), _T("LRAN"), _T("SETLRAN"), _T("SIN"), _T("COS"), // 00-04 _T("TAN"), _T("ASIN"), _T("ACOS"), _T("ATAN"), _T("EXP"), // 05-09 _T("LOG"), _T("LN"), _T("SQRT"), _T("ABS"), _T("INT"), // 10-14 _T("ROUND"), _T("DB"), _T("SINX"), _T("SINC"), _T("SIGN"), // 15-19 _T("HZ2BARK"), _T("BARK2HZ"), _T("BIT"), _T("FLOOR"), _T("ISERR"), // 20-24 _T("ISERROR"), _T("ISWARNING"),_T("ISWARN"), _T("NPOW2"),
- Notes
-
- The
INTcommand converts the result to an integer by truncating it. There is no rounding involved, no rounding at all. - In case of the expression being syntactically ill-formed, an error (
INT) or warning (INTCHECK) is reported.
- The
- See also
- NUM, NUMCHECK, EVAL, EVALCHECK
- Examples
#result := int 3.1 // #result is set to 3
#result := int 3.9 // #result is set to 3, too
#result := int 3.9 * 3.9 // #result is set to 15 (note that calculation
// is done in floating point, resulting in 15.21,
// and truncation occurs only on assigning
// compare the preceding example with the following one:
#result := int 3 * int(3.9) // here, #result will be assigned 9 - cool, isn't it?