ReadMe file for ConvertAll

a unit conversion program

Written by Doug Bell
Version 0.8.0
March 15, 2020



Why write another unit converter? There are plenty of them out there. Well, I couldn't find one that worked quite the way I wanted.

With ConvertAll, you can combine the units any way you want. If you want to convert from inches per decade, that's fine. Or from meter-pounds. Or from cubic nautical miles. The units don't have to make sense to anyone else.

Since I'm not in the software business, I'm making this program free for anyone to use, distribute and modify, as long as it is not incorporated into any proprietary programs. If you like the software, feel free to let others know about it. And let me know what you think - my email address is doug101 AT bellz DOT org


Legal Issues

ConvertAll 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 2 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. See the LICENSE file provided with this program for more information.

System Requirements


ConvertAll requires the following libraries:


Using the files provided in the binary distribution, ConvertAll should run on any computer running Windows XP, Vista, 7, 8 or 10.



Extract the source files from the convertall tar file, then change to the ConvertAll directory in a terminal. For a basic installation, simply execute the following command as root: python

If your distribution defaults to Python 2.x, you may need to substitute python3 for python in these commands.

To see all install options, use: python -h. To install ConvertAll with a different prefix (the default is /usr/local), use: python -p /prefix/path


To install for all users, execute the ConvertAll-x.x.x-install-all.exe file. Administrator permissions are required.

To install for a single user (administrator rights are not required), execute the ConvertAll-x.x.x-install-user.exe file.

For a portable install, execute the ConvertAll-x.x.x-install-user.exe file, uncheck the shortcuts and uninstaller tasks, and check the portable config task.

Using ConvertAll


Simply type a unit name in the "From Unit" edit window. As you type, the list below the window will be filtered to show only matching units. Matching unit names contain words starting with the words that are typed. Either type the complete unit name/abbreviation or hit the return key to use the unit highlighted (blue letters) in the list. Of course, clicking with the mouse on a unit in the list will also add the unit to the edit window. You may also use the up and down arrow keys to highlight nearby units from the list.

Repeat the unit selection in the "To Unit" edit window. When done, if the units are compatible, the numeric edit windows below the unit lists will activate. A number may be entered into either numeric window and the other window will display the conversion result.

Combining Units

The real strength of ConvertAll lies in its ability to combine multiple units. Simply type the unit names with an '*' or a '/' between them. This allows the entry of units such as "ft * lbf" or "mi / hr". The '^' symbol may be used for exponents, such as "ft^3" or "ft * lbm / sec^2". Negative exponents are allowed for units such as "sec^-1" (per second), but may switch the multiplication or division symbol ("ft * sec^-2" becomes "ft / sec^2").

Multiplication and division have the same precedence, so they are evaluated left-to-right. Parenthesis may also be used to group units in the denominator. So "m / sec / kg" can also be entered as "m / (sec * kg)". The version with parenthesis is probably less confusing.

The buttons below the unit text boxes can also be used to add operators to the active unit that is closest to the cursor. The Square and Cube buttons will add or replace exponents. The Multiply and Divide buttons will add "*" and "/" operators.

Similarly, clicking on a unit from the list generally replaces the unit nearest the cursor.

The "Clear Unit" button below the operator buttons may be used to empty the unit edit window to allow a new unit to be entered.

The "Filter List" button can be used to show only one type of unit in the list. Note that this doesn't show units that could be combined to form a type.

Non-Linear Conversions

The conversion of some units is non-linear. Examples of these include the Fahrenheit and Celsius temperature scales (due to an offset zero point) and the American Wire Gauge (logarithmic). The non-linear units are labeled as such in the comments column.

These units can be converted only when they are not combined with other units or used with an exponential operator. Otherwise the conversion would not be meaningful.


When typing unit names, spaces are ignored, so they may be skipped. It is also generally ignored if a plural form of the unit name is typed. For squared and cubed units (positive exponents of 2 or 3) the "^" symbol does not need to be typed.

When a partially typed unit is highlighted in the list (blue lettering), hitting enter will complete the name. The up an down arrow keys can be used to highlight nearby units in the list prior to hitting enter. The unit closet to the cursor will be replaced.

The "Recent Unit" button opens a menu of recently used units and unit combinations. The current unit combination is replaced with any selections from this menu.

The tab key can be used to cycle between the "From" and "To" unit test boxes and the "From" and "To" number editors.

The number to be converted may be entered in either the "From" or "To" unit side. Standard or scientific notation may be used, or an expression including the normal math operators (+, -, *, /, **) and parenthesis may be entered.

Numbering System Conversions

The "Bases" button brings up a dialog that can convert between various numbering system bases. There are entry boxes for decimal, hexadecimal, octal and binary entries. A number can be entered into any of the boxes and equivalents will be shown in the others.

The "Fractions" button brings up a dialog that can list fractional equivalents for a decimal number. Type the number and press enter. The fractions are listed in order of increasing accuracy.


The "Options..." button allows for changing several default settings. These settings are automatically stored so that ConvertAll will re-start with the settings last used.

The first options control the display of numerical results, including the use of scientific notation and the number of decimal places. Be cautious about setting the number of decimal places to a low value, which can result in a significant loss of accuracy. Six places or higher is recommended (eight is the default).

There is an option to set the number of recent units to be saved. Setting it to zero will disable the Recent Unit buttons. Another option will automatically load the most recent previous units at startup.

There are options to hide the operator text buttons (first row), and the unit buttons (second row). These can be hidden to save space if the keyboard will be used to enter the operators.

Buttons are also included on the options dialog to control GUI colors and fonts. Colors can be selected by theme or individually. Larger fonts can be selected for use on high-resolution displays.

Command Line Usage

Conversions may be done from the command line (Linux or DOS console) without invoking the graphical interface. Enter the command ("convertall" on Linux, "convertall_dos" from the Windows binary), the number, the from unit and the to unit (separated by spaces) to do the conversion. Unit names containing spaces should be surrounded by quotes. Or, to be prompted for each unit entry, use the "-i" option ("convertall -i" on Linux, "convertall_dos -i" from Windows).

After the conversion is done, ConvertAll will prompt for a new number to do the same conversion. Or "n" can be entered to start a new conversion, "r" to reverse the conversion or "q" to quit.

For a more detailed list of options, use the "-h" option ("convertall -h" on Linux, "convertall_dos -h" on Windows).

Revision History

March 15, 2020 - Release 0.8.0

July 4, 2018 - Release 0.7.5

April 4, 2018 - Release 0.7.4

October 15, 2017 - Release 0.7.3

February 20, 2017 - Release 0.7.2

February 4, 2017 - Release 0.7.1 (Linux only)

January 8, 2017 - Release 0.7.0

September 10, 2015 - Release 0.6.1

February 1, 2014 - Release 0.6.0

November 2, 2011 - Release 0.5.2

March 31, 2011 - Release 0.5.1

May 2, 2010 - Translation Update 0.5.0b

April 23, 2010 - Release 0.5.0

September 24, 2009 - Release 0.4.3

May 28, 2008 - Release 0.4.2

January 22, 2008 - Release 0.4.1

October 5, 2006 - Release 0.4.0

October 5, 2006 - Release 0.3.2

February 14, 2005 - Release 0.3.1

March 11, 2004 - Release 0.3.0

November 18, 2003 - Release 0.2.4

March 24, 2003 - Release 0.2.3

May 28, 2002 - Release 0.2.2a

May 16, 2002 - Release 0.2.2

September 17, 2001 - Release 0.2.1

August 20, 2001 - Release 0.2.0

August 10, 2001 - Release 0.1.1

July 28, 2001 - Release 0.1.0

Questions, Comments, Criticisms?

I can be contacted by email at: doug101 AT bellz DOT org
I welcome any feedback, including reports of any bugs you find. Also, you can periodically check back to for any updates.