Qalculate! – a multi-purpose cross-platform desktop calculator

Qalculate! is a very powerful and easy to use open source desktop calculator.

This utility is small and simple to use but with much power and versatility under the bonnet. Its features include customizable functions, units, arbitrary precision, plotting, and a graphical interface that uses a one-line fault-tolerant expression entry (although it supports optional traditional buttons).

The centre of attention in Qalculate! is the expression entry. Instead of entering each number in a mathematical expression separately, you can directly write the whole expression and later modify it. Just enter an expression as you would write it on paper, press Enter and voila!

Qalculate! also has some special tools to increase efficiency, including a number base conversion dialog and a simple plotting interface.

Plotting in Qalculate! is done through an external program, gnuplot.

Features include:

  • Graphical user interfaces implemented using KDE or GTK+-2.0 and Glade XML.
  • Flexible expression entry and separate result display.
  • Displays whether result is precise or not.
  • Small and … not so small mode.
  • Practical menus give fast access to all advanced features.
  • Calculation history.
  • Optional traditional calculator buttons.
  • Dialogs for management of and easy access to functions, variables and units (with quick conversion).
  • User friendly dialogs for functions, with description and entries for arguments.
  • Create/edit functions, variables and units.
  • Easy editing of matrices and vectors.
  • Easy interface to gnuplot.
  • Separate window for fast conversion between number bases.
  • Periodic table.
  • Small separate utilities for base, currency and unit conversion.
  • Additional text based interface with full functionality.
  • Enhanced completion.
  • Meta modes.
  • Calculation and parsing:
    • Basic operations and operators: + – * / ^ E () && || ! < > >= <= != ~ & | << >>.
    • Fault-tolerant parsing of strings: log 5 / 2 .5 (3) + (2( 3 +5 = ln(5) / (2.5 * 3) + 2 * (3 + 5).
    • Expressions may contain any combination of numbers, functions, units, variables, vectors and matrices.
    • Supports complex and infinite numbers.
    • Supports all number bases from 2 to 36, time format and roman numerals.
    • Ability to disable functions, variables, units or unknown variables for less confusion: ex. when you do not want (a+b)^2 to mean (are+barn)^2 but (“a”+”b”)^2.
    • Controllable implicit multiplication.
    • Matrices and vectors, and related operations (determinants etc).
    • Verbose error messages.
    • Arbitrary precision.
    • RPN mode.
  • Result display:
    • Supports all number bases from 2 to 36, plus sexagesimal numbers, time format and roman numerals.
    • Many customization options: precision, max/min.
      decimals, multiplication sign, etc.
    • Exact or approximate.
    • Fractions: 4 / 6 * 2 = 1.333… = 4/3 = 1 + 1/3.
  • Symbolic calculation:
    • Ex. (x + y)^2 = x^2 + 2xy + y^2; 4 “apples” + 3 “oranges”.
    • Factorization and simplification.
    • Differentiation and integration.
    • Can solve most equations and inequalities.
    • Customizable assumptions give different results (ex. ln(2x) = ln(2) + ln(x) if x is assumed positive).
  • Functions:
    • All the usual functions: sine, log, etc… : ln 5 = 1.609; sqrt(tan(20) – 5) = sqrt(-2.76283905578).
    • Lots of statistical, financial, geometrical, and more functions (approx. 200).
    • If..then..else function, optional arguments and more features for flexible function creation.
    • Can easily be created, edit and saved to a standard XML file.
  • Units:
    • Supports all SI units and prefixes (including binary), as well as imperial and other unit systems.
    • Automatic conversion: ft + yd + m = 2.2192 m.
    • Implicit conversion: 5m/s to mi/h = 11.18 miles/hour.
    • Smart conversion: can automatically convert 5 kg*m/s^2 to 5 newton.
    • Currency conversion with retrieval of daily exchange rates.
    • Different name forms: abbreviation, singular, plural (m, meter, meters).
    • Can easily be created, edit and saved to a standard XML file.
  • Variables and constants:
    • Basic constants: pi, e.
    • Lots of physical constants and elements.
    • CSV file import and export.
    • Can easily be created, edit and saved to a standard XML file.
    • Flexible, can contain simple numbers, units or whole expressions.
    • Data sets with objects and associated properties in database-like structure.
  • Plotting:
    • Uses gnuplot.
    • Can plot functions or data (matrices and vectors).
    • Ability to save plot to PNG image, postscript, etc.
    • Several customization options.

Support: Manual
Developer: Hanna Knutsson
License: GNU GPL v2

Image of Qalculate

Qalculate! is written in C++. Learn C++ with our recommended free books and free tutorials.

Return to Calculators: Graphical Tools | Return to Financial

Popular series
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
GamesAwesome Free Linux Games Tools showcases a series of tools that making gaming on Linux a more pleasurable experience. This is a new series.
Artificial intelligence iconMachine Learning explores practical applications of machine learning and deep learning from a Linux perspective. We've written reviews of more than 40 self-hosted apps. All are free and open source.
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
Alternatives to popular CLI tools showcases essential tools that are modern replacements for core Linux utilities.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
AudioSurveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal.
Saving Money with LinuxSaving Money with Linux looks at how you can reduce your energy bills running Linux.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Linux Around The WorldLinux Around The World showcases usergroups that are relevant to Linux enthusiasts. Great ways to meet up with fellow enthusiasts.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Newest Most Voted
Inline Feedbacks
View all comments
Bertrand Braun
Bertrand Braun
5 years ago

why don’t these calculators have “memory” functions such as M+ M- MRC MC.

not only is this useful, it is practically necessary for the simplest day-to-day budgetary or financial calculations.

even the cheapest hand held calculators (like at the dollar stores?) ALL have this function

and yet, and yet, almost NONE of these calculators, even the “advanced” calculators

I hate to say it, but even Windows has this on their basic calculator. Did they get it right by accident?

4 years ago
Reply to  Bertrand Braun

Qalculate has a “STO” button (similar to TI graphing calculators) which lets you assign a result to an arbitrary variable name. You can also use ‘:=’ (colon, equals) for variable assignment, as in ‘x:=x+1’.

Anyway, Qalculate seems to be more of a “computer algebra system” than a “calculator” in the conventional sense that you’re looking for.

Since every desktop environment I can think of has a built in calculator program (with memory functions), it’s hard to understand why you’d be frustrated by this.

4 years ago
Reply to  ernstkm

it is not at all difficult to understand why he is frustrated by the lack of the memory buttons. They are very handy to have available. My thought is why are YOU not concerned that the memory buttons are missing.

Trent Calder
Trent Calder
4 years ago
Reply to  DrkStr

It’s quite simple really. If you are so concerned by any missing functionality, you can:

a) raise an issue on the project’s GitHub page, requesting the *missing* feature(s) are added. The developers will consider any request. They might decide to add what you want, or explain why they won’t.

The fact that you don’t appear to have done this (or for that matter anyone else) indicates that the program’s userbase doesn’t consider the functionality in question to be important as you suggest.

b) code the *missing* feature yourself. If the developer doesn’t accept the code…

c) fork the project, apply the code, or pay someone to write the code if you are unable to develop, or don’t have the time to do so.

That’s the beauty of open source.

3 years ago
Reply to  Trent Calder

Wow. Genius. Whenever I see the “go fix it yourself” crowd surrounding an open-source project, I know to not use that b/c I can expect to implement every other standard missing feature & I might as well be maintaining my own software at that point.

Jim S Smith
Jim S Smith
4 years ago


Thanks for this great article on “Qalculate!”. I have used Galculator for while now because of its being available through the usual repositories (and as a default on many Debian distros). However, being that I am very interested in custom functions for various technical uses, Galculator has me hitting my head at the ceiling of its limitations.

Qalculate! sounds like the one for me and my needs for advanced technical mathematics. My main thing, I need to be able to craft and use functions that will probably require two or more inputs anyway, and it sounds like Qalculate! may again fit the bill?

So, based on what I have read here, I am going to try it out.

Once again, Thanks for fine article.

– Jim S.

4 years ago

Anyone know how to put a comment or whatever in before, during or after doing a calculation? If I calculated the partial volume of a cylinder (horizontal), which is good for knowing things like how much fuel is in a tank, it would be nice to have a comment before, during or after I made the calculation — so that when I was going through my history later, looking through 500 calculations, I could say “Yep, there that feller is!”. Since I don’t know that formula by heart, because I don’t work in a field where I do that calculation so I do it 50 times a day and have it memorized, but I did it once because it was important for some reason at the time, and I need to know how I did it again. As someone said in a comment on another site, you might not (gasp! horror!) have access to the Internet at the time, so you can’t just google “calculate partial volume of a cylinder” or “calculate remaining volume in a tank” or some such.

Al in St. Louis
Al in St. Louis
1 year ago

The documentation is extremely poor. For example, how would one change the parsing mode in the CLI version. The only way I’ve found is to exit and restart. That makes it too frustrating to use.

1 year ago

Check the project’s GitHub as a starter, a lot of useful information is contained in a project’s Issues (open and closed).

If you can’t find anything there, raise an issue.