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.

Website: qalculate.github.io
Support: Manual
Developer: Hanna Knutsson
License: GNU GPL v2

Qalculate!

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

Return to Calculators Home Page | Return to Financial Home Page


Ongoing series
Linux for StartersNew to Linux? Read our Linux for Starters series.
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Supplied with our legendary ratings charts.
Linux ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software.
Alternatives to GoogleAlternatives to Google's Products and Services examines your options to migrate from the Google ecosystem with open source Linux alternatives.
MicrosoftAlternatives to Microsoft's Products and Services recommends open source Linux software.
Linux System ToolsEssential Linux system tools looks at small, indispensable utilities, useful for system administrators as well as regular users.
Linux ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
Home Computer EmulatorsHome 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.
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 opens up to the lighter side of Linux. Have some fun!
Best Free Android AppsBest Free Android Apps. There's a strict eligibility criteria for inclusion in this series
Programming BooksThese best free books accelerate your learning of every programming language
Programming TutorialsThese free tutorials offer the perfect tonic to the free programming books series
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA
Share this article

7 comments

  1. 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?

    1. 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.

      1. 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.

      2. 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. 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.

  2. NICE!

    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.

  3. 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.

Share your Thoughts

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