EbbyCalc is a simple calculator app primarily targeting the iPad since it does not ship with a native calculator app. I was frustrated with the other basic iPad calculators, so I decided to write my own. I wanted it to resemble the style of the iPhone native app, while supporting the set of operations that the physical calculator I normally used for household expense tracking provided, most importantly a stored tax calculation (for sales tax) and the particular behavior of the sign key combined with chained operations.
This is not a scientific calculator, nor an engineering calculator, and I don't expect it will ever become one. It does properly use decimal-based number types to avoid floating point rounding errors, and provides 16-digits of display precision, which is more than enough for my needs.
The regular view of the calculator follows the layout of the aforementioned physical calculator, as that's where I'm used to the buttons being, but the layout does get rearranged for very narrow layouts, such as during Split View or Slide Over scenarios.
This app is available for installation in the App Store. Please file any bug or feature requests on github.com, though no guarantees are given regarding response or timeliness. But feel free to make your own fork!
- Up to 16 digit numeric representation
- Large, adaptive buttons
- Support for Slide Over and Split View
- Decimal-based numeric engine to avoid currency rounding errors
- Customizable key click audible feedback
- VoiceOver accessibility
- Support for common 4-function calculator operations
- Additional operations including square, root, reciprocal, and percent
- Tax rate calculations
- Memory store, edit, recall, and clear
- Clear most recent calculation input (for fixing mis-typed data)
- Backspace to delete digits of most recently entered input
- Copy and paste of the input field
- Hardware keyboard support
e.g. Enter 1 + 2 =
Yields 3. Subsequent presses of = will continue to add the same value.
= 5
= 7, and so on.
e.g. Enter 3 + =
Yields 3. Subsequent presses of = will continue to add the same value.
= 6
= 9, and so on.
e.g. Enter 5 - 4 =
Yields 1. Subsequent presses of = will continue to subtract the same value.
= -3
= -7, and so on.
e.g. Enter 2 - =
Yields -2. Subsequent presses of = will continue to subtract the same value.
= -4
= -6, and so on.
e.g. Enter 3 × 7 =
Yields 21. Subsequent presses of = will continue to multiply by the same value.
= 147
= 1029, and so on.
e.g. Enter 3 × =
Yields 9, the square. Subsequent presses of = will continue to multiply by the same value.
= 27 (third power) = 81 (fourth power), and so on.
e.g. Enter 8 ÷ 4 =
Yields 2. Subsequent presses of = will continue to divide by the same value.
= 0.5
= 0.125, and so on.
e.g. Enter 2 ÷ =
Yields 0.5, the reciprocal. Subsequent presses of = will continue to divide by the same value.
= 0.25 = 0.125, and so on.
Press the +|− button to change the sign of the displayed value. This can be done to the result of a calculation, and the calculation continued on without reseting the input.
Press the √ button to take the square root of the value currently being displayed. This can be done to the result of a calculation, or to an argument being entered, and the calculation continued on without reseting the input. The calculator will take the square root of a negative value as though it were positive, but will place the calculator into an error state.
The % key works as a sort of equal sign, indicating that whatever binary operation has been input, the second argument should be interpreted as a percent. Thus,
80 + 50 % yields 120 (80 plus 50 percent of 80).
80 - 50 % yields 40 (80 minus 50 percent of 80).
80 × 50 % yields 40 (80 times 50 percent (= .5 = divided by 2)).
80 ÷ 50 % yields 160 (80 divided by 50 percent (= .5 = times 2)).
Each press of the = key will perform the same percent calculation on the current result. So each of the above examples would either add, subtract, multiply, or divide 50 percent from the new result.
e.g. 80 + 50 % yields 120
= 180
= 270, and so forth, each adding an additional 50 percent.
m+ will add the current result to the value stored in the general purpose memory location (initially 0). If the result would exceed 16 digits, the calculator will enter an error state. Note that the memory state indicator (M) will become visible upon setting the memory location if it was not already visible.
m- will subtract the current result from the value stored in the general purpose memory location (initially 0). If the result would exceed 16 digits, the calculator will enter an error state. Note that the memory state indicator (M) will become visible upon setting the memory location if it was not already visible.
mrc will display the currently stored value so that it can be used in a calculation. Pressing it twice in a row will first display the memory value, then clear the general purpose memory. If the memory location is cleared, the memory state indicator (M) will turn off.
To use the tax operations, first the tax rate must be set.
- Enter the tax rate. For example, if the tax rate is 10.1%, just enter 10.1
- Press the rate key. Note the tax+ key becomes a store key.
- Press the store key. Note that the tax rate indicator (TAX%) will become visible, indicating that the displayed value is the tax rate.
- Press the rate key. Note that the tax- key becomes a recall key.
- Press the recall key. The tax rate will be displayed, and the tax rate indicator (TAX%) will become visible, indicating that the displayed valued is the tax rate.
After any calculation, or simply by entering a value, tax can be added to it by pressing the tax+ button. The display will be updated with the tax-added result, and the TAX+ indicator will become visible, indicating the current display represents a result including tax.
By pressing the tax+ key again, the TAX indicator will instead become visible, and the display will change to show the amount of tax that was included in the previous calculation.
Pressing the tax+ key yet again will revert back to the tax-added result, and so forth.
After any calculation, or simply by entering a value, tax can be removed from it by pressing the tax- button. The display will be updated with the tax-reduced result, and the TAX- indicator will become visible, indicating the current display represents a result excluding tax.
By pressing the tax- key again, the TAX indicator will instead become visible, and the display will change to show the amount of tax that was removed from the previous calculation.
Pressing the tax- key yet again will revert back to the tax-excluded result, and so forth.
When entering a value, if a mistake is made, pressing C will only clear the current input, but will not halt the current calculation. Pressing C again will fully halt the calculation, returning to a fresh input state.
When entering a value, swiping to the left in the display area will delete the last digit entered, then the digit before that, and so forth until the input is cleared back to 0. This swiping action has no effect on the result of a calculation.
The display can be copied or pasted by long tapping in the display area, then selecting either copy or paste from the context menu that appears. Any value pasted must "look" like a number in the current locale.
As with most fixed-digit calculators, a number of situations can cause the calculator to enter an error state. In the error state, some result may be shown, but it cannot be guaranteed to make sense for the calculation which was attempted.
Errors can arise from any of the following:
- Attempt to divide by zero
- Attempt to take the square root of a negative number
- Attempt to perform any calculation that would exceed 16 digits in the result
- Attempt to alter the general purpose memory location in such a way that it would exceed 16 digits
All operations of the calculator are also made available through hardware keyboard keys, with the following mappings:
Calculator Key | Keyboard Key |
---|---|
C | Escape (esc) key |
Backspace | Backspace (delete) key |
Digits | Use any numeric key |
. | Period (.) key |
= | Equal (=) or Enter (Return) key |
+|- | Backslash (\) key |
% | Percent (%) key |
√ | Letter Y key |
× | Asterisk (*) key |
÷ | Slash (/) key |
+ | Plus (+) key |
− | Minus (-) key |
rate | Letter Q key |
tax+/store | Letter W key |
tax-/recall | Letter E key |
mrc | Letter A key |
m+ | Letter S key |
m- | Letter D key |
Copyright (c) 2019, Ansel Rognlie All rights reserved.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.