One of the Tasker functions that isn’t often talked about is the ability to do Maths in Tasker. ‘Do Maths‘ box in Variable Set action turns Tasker into a little Einstein. This write-up aims to shed some light, and go beyond the basic mathematics, should you ever need it.
Maths in Tasker
Apart from basic operators, the list of mathematical expressions is rather impressive and it’s unlikely you will ever need all of them. To make an operation simply use Variable Set action and select the ‘do Maths’. Now you can write the equation of your choice.
Let’s try something simple:
The Internet believes that solving this little task makes you a genius. I’m using it to illustrate that Tasker will obey mathematical rules when writing your calculations. To get an 8 you have to do this instead:
Ceil, floor, nextup… making the integers great again!
The weather forecast in my Weather Notification Project comes as a floating point number (number with a decimal space). This level of precision is not that important. I doubt I would feel the difference between 15°C and 15.87633°C. Here is how to get rid of the decimal quickly:
Variable Set %floor: floor(%temp) Variable Set %ceil: ceil(%temp) Variable Set %nextup: nextup(%temp)
As you can see that was quick and painless. Ceil() rounds up, floor() does the opposite, and the nextup() gets rid of the long decimal number. But this is a single value only. What if I have an entire array of data to process? Regardless of the calculation, you want to apply – you can do it with a FOR loop:
%Array(16.25,15.75,19.31) FOR Loop A1: For [ Variable:%domaths Items:%Array() ] A2: Variable Set [ Name:%result To:ceil(%domaths) Recurse Variables:Off Do Maths:On Append:Off ] A3: Array Push [ Variable Array:%new_array Position:3 Value:%result Fill Spaces:On ] A6: End For A7: Flash: %new_array
Each value from the %Array is iterated and the calculation (A2) is performed. The %result is assigned back to the %new_array in the same order. It’s worth noting that you either have to ‘push‘ the values from the ‘bottom‘ of the array or use action Array Process – Reverse to restore the original order.
Other most used functions
Maths in Tasker has more functions, but I’m only going to cover most used by me. Let’s try modulus next. If you are new to programming it might be the first time you come across this:
Variable set: 16/7 Variable set: 16%7
Unlike divide, modulus gives your the reminder from the divide operation. You can ‘fit’ two sevens inside 16 and you get the reminder:2 It’s great to check if a number is even or odd (divide by 2 – if % = 0 it is an even number).
Absolute value gives you a positive value of the integer:
Variable Set: abs(-10) Variable Set: abs(10)
More Maths in Tasker
A few more operations are available in Tasker. Variable Convert does number conversions for you. You can:
- convert units,
- deal with HTML tags
The plugin AutoTools also contains action for mathematical calculations. These can be calculated in vanilla Tasker using more complicated equations but if you feel lazy feel free to use the plugin to:
- calculate sum
- calculate an average
- find min/max number
AutoTools WebScreens Calculations
A new update to AutoTools introduced calculations to Web Screens. The option allows to assign multiple fields for inputs and outputs and perform a mathematical function on values. It’s a very fast and convenient way to create a calculated fields and process the multiple fields at once (arrays).
I hope this opens up some new possibilities for you. If you have any questions feel free to ask it via social media. As usual, your support is much appreciated! Follow me on social media for more tutorials and updates or support me and the projects directly!