Command line calculator that keeps fractional values
You can set the length of the fractional part with scale=n
.
The command echo 'scale=20;752/447' | bc
yields:
1.68232662192393736017
Note that even if the number fits within the scale, additional zero's might be appended:
scale=20
1/2
.50000000000000000000
Unfortunately, there is always a rounding issue:
scale=50
1/3*3
.99999999999999999999999999999999999999999999999999
calc
(I believe from package apcalc
) does the same as bc
, but does not round. It displays similarly to bc
, but unlike bc
, it understands scientific notation. Example:
> calc
C-style arbitrary precision calculator (version 2.12.3.3)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
; a=234
; b=a/7
; b
~33.42857142857142857143
; c=b/1e20
; c
~0.00000000000000000033
; c*1e10
~0.00000000334285714286
;
Compare with bc
:
> bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
a=234
b=a/7
b
33.42857142857142857142
c=b/10^20
c
.00000000000000000033
c*1e10
(standard_in) 6: syntax error
c*10^10
.00000000330000000000
A little search turns up lots of results, not all of which are relevant, but I am sure that a few trials will get you exactly what you want (wcalc, for instance):
aptitude search calc
i apcalc - Arbitrary precision calculator (original name: calc)
i A apcalc-common - Arbitrary precision calculator (common files)
p apcalc-dev - Library for arbitrary precision arithmetic
p bandwidthcalc - file transfer time calculator written in GTK+
p calcoo - Scientific calculator (GTK+)
p calcurse - text-based calendar and todo manager
p concalc - console calculator
p extcalc - multifunctional scientific graphic calculator
p gcalcli - Google Calendar Command Line Interface
i gcalctool - GNOME desktop calculator
p ipcalc - parameter calculator for IPv4 addresses
p ipv6calc - small utility for manipulating IPv6 addresses
p kcalc - calculator for KDE 4
p keurocalc - universal currency converter and calculator - binary package
p keurocalc-data - universal currency converter and calculator - data package
p lcalc - a program for calculating with L-functions
p libcolor-calc-perl - Perl module for simple calculations with RGB colors
p libdate-calc-perl - Perl library for accessing dates
p libdate-pcalc-perl - Perl module for Gregorian calendar date calculations
p libmath-basecalc-perl - Convert numbers between various bases
p libmath-calc-units-perl - Human-readable unit-aware calculator
p libmath-calculus-differentiate-perl - Algebraic Differentiation Engine
p libmath-calculus-expression-perl - Algebraic Calculus Tools Expression Class
p libmath-calculus-newtonraphson-perl - Algebraic Newton Raphson Implementation
p libticalcs-dev - Texas Instruments calculator communication library [development files]
p libticalcs2-7 - Texas Instruments calculator communication library
p libwww-google-calculator-perl - Perl interface for Google calculator
p octave-physicalconstants - provide physical constants values in Octave
i openoffice.org-calc - office productivity suite -- spreadsheet
v openoffice.org2-calc -
p python-ipcalc - perform IP subnet calculations
v python2.6-ipcalc -
p r-cran-epicalc - GNU R Epidemiological calculator
p rpncalc - RPN calculator trying to emulate an HP28S
p science-numericalcomputation - Debian Science Numerical Computation packages
p sipcalc - Advanced console-based ip subnet calculator
p subnetcalc - IPv4/IPv6 Subnet Calculator
p sugar-calculate-activity - calculate activity for the Sugar graphical shell
p tapecalc - a full-screen tape editor that lets the user edit a calculation
p transcalc - microwave and RF transmission line calculator
p wcalc - A flexible command-line scientific calculator
p wmcalclock - A dock.app which simply tells time and date
p xsmc-calc - Smith Chart calculator for X
I would suggest using Python as a command-line calculator:
$ python
>>> from math import *
>>> help(sin)
sin(x)
Return the sine of x (measured in radians).
Also I would recommend IPython or IDLE. Both hugely improve usability of the standard shell.
Update: use python3 to avoid truncation surprises:
$ python2.7
>>> 10/3
3
$ python3
>>> 10/3
3.3333333333333335