User Tools

Site Tools


manual:Calculations

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
manual:Calculations [2018/06/30 03:24]
peternlewis [Operators]
manual:Calculations [2019/07/04 04:20]
peternlewis
Line 3: Line 3:
 ===== Overview ===== ===== Overview =====
  
-Keyboard Maestro supports calculations in almost any numeric [[/​Text_Fields|text fields]]. ​ For example you can Pause for "​60*Time in Minutes"​. ​ Calculations can also use comma separated lists of numbers as arrays, and can return such arrays, so you can operate on frames and points. ​ Numeric fields often start small with up/down step arrows, but if you type anything other than a number they will expand to allow a more complex expression to be entered. ​ You can tell that a field accepts calculations because a small BUTTON{{{C}}} shows in the field while editing it.+Keyboard Maestro supports calculations in almost any numeric [[/​Text_Fields|text fields]]. ​ For example you can Pause for "​60*Time in Minutes"​. ​ Calculations can also use comma separated lists of numbers as arrays, and can return such arrays, so you can operate on rectangle ​frames and points. ​ Numeric fields often start small with up/down step arrows, but if you type anything other than a number they will expand to allow a more complex expression to be entered. ​ You can tell that a field accepts calculations because a small BUTTON{{{C}}} shows in the field while editing it.
  
 ===== Examples ===== ===== Examples =====
Line 23: Line 23:
 Operators based on precedence from lowest to highest are: Operators based on precedence from lowest to highest are:
  
-| Array Separator (`,`) | Allows a text Variable, which has comma separated values, to work somewhat like an Array.\\ Assume `MyKMVariable` contains "​value1,​value2,​value3"​.\\ Then `MyKMVariable[2]` returns "​value2"​. |+| Array Separator (`,`) | Allows a text Variable, which has comma separated values, to work somewhat like an Array.\\ Assume `MyKMVariable` contains "​value1,​value2,​value3"​, then `MyKMVariable[2]` returns "​value2"​. |
 | Ternary Operator (`?`) | a=b ? 3 : 4 | | Ternary Operator (`?`) | a=b ? 3 : 4 |
-| Bitwise OR (`|`), Bitwise AND (`&`) and Bitwise XOR | operators | +| Bitwise OR (`|`), Bitwise AND (`&`) and Bitwise XOR | bitwise ​operators
-| Comparison Operators (`<, ≤, =, >, ≥, ≠`) | compare for (in)equality and return 0 or 1 | +| Comparison Operators (`<, ≤, =, >, ≥, ≠`) | compare for (in)equality and return 0 or 1
-| Shift Operators (`≪, ≫`) | shift a number left or right |+| Shift Operators (`≪, ≫`) | shift a number left or right|
 | Arithmetic Operators\\   • Add (`+`)\\   • Subtract (`-`)\\   • Multiply (`*`)\\   • Divide (`/`) | A mathematical function that takes two operands and performs a calculation on them. | | Arithmetic Operators\\   • Add (`+`)\\   • Subtract (`-`)\\   • Multiply (`*`)\\   • Divide (`/`) | A mathematical function that takes two operands and performs a calculation on them. |
-| [Modulo](https://​en.wikipedia.org/​wiki/​Modulo_operation) (`i MOD n`) | The remainder of the division of `i by n`.\\ Both values (`i, n`) must be an integer ​in Keyboard Maestro.  | +| [Modulo](https://​en.wikipedia.org/​wiki/​Modulo_operation) (`i MOD n`) | The remainder of the division of `iby `n`.\\ Both values (`i``n`) will be treated as integer.\\ `n` must not be 0.\\ the sign of the result is the same as the sign of i.  | 
-| Power Operator (`^`) | exponentiation | +| Integer division (`i DIV n`)  (v9.0+)| The integer ​quotient of the division of `i` by `n`.\\ Both values (`i`, `n`) will be treated as integer.\\ `n` must not be 0.\\ the sign of the result matches the sign of regular division.  | 
-| Unary Prefix Operators (`√`, `-`, `( )` ) | square root, negation, sub-expressions | +| Power Operator (`^`) | exponentiation
-| [Functions](https://​wiki.keyboardmaestro.com/​Functions| a large variety of functions | +| Unary Prefix Operators (`√`, `-`, `( )` ) | square root, negation, sub-expressions
-| Numbers and Variables or Array Accesses (5,​$5A,​0x50,​8#​007,​Variable,​Variable[5]) | identifiers and values | +| [[:Functions|Functions]] ​| a large variety of functions
-| Unary Postfix Operators (`!,%,°`)) | factorial, percent, degrees |+| Numbers and Variables or Array Accesses (5,​$5A,​0x50,​8#​007,​Variable,​Variable[5]) | identifiers and values
 +| Unary Postfix Operators (`!,%,°`)) | factorial, percent, degrees|
  
 Numbers are in decimal by default, but may use base 16 if they start with `$` or `0x` (eg $5A or 0x5A), or may start with a specific base followed by a `#` (eg 8#007). Numbers are in decimal by default, but may use base 16 if they start with `$` or `0x` (eg $5A or 0x5A), or may start with a specific base followed by a `#` (eg 8#007).
  
-[Variables](https://​wiki.keyboardmaestro.com/​manual/​Variablescan be used if they contain numeric expressions,​ including an *array* of numbers separated by commas, in which case you can use an array index to select the desired number. ​+[[Variables|Variables]] can be used if they contain numeric expressions,​ including an *array* of numbers separated by commas, in which case you can use an array index to select the desired number. ​
  
 You can use either `=` or `==` (v8+) for testing for equality. You can use either `=` or `==` (v8+) for testing for equality.
  
 Operators and functions must be in uppercase to minimize conflict with variables. Operators and functions must be in uppercase to minimize conflict with variables.
 +
 ===== Functions ===== ===== Functions =====
  
 The available functions are listed on the [[/​Functions|wiki Functions page]]. The available functions are listed on the [[/​Functions|wiki Functions page]].
  
-You can insert a function by name by choosing [[Menus#Insert_Function_by_Name|Insert Function ​by Name]] from the [[Menus#Edit|Edit menu]].+You can insert a function by name by choosing ​from the [[Menus#Insert_Function|Edit ➤ Insert Function ​menu]] or choosing ​the [[Menus#Insert_Function_by_Name|Edit ➤ Insert Function by Name menu]].
  
 ===== Variables ===== ===== Variables =====
Line 122: Line 124:
 </​code>​ </​code>​
  
---- 
- 
-**KeyWords:​** ​ MOD, Modulo 
manual/Calculations.txt · Last modified: 2023/10/02 00:38 by peternlewis