Я только что нашел хорошую программу калькулятора командной строки под названием bc и был доволен ею, пока не обнаружил, что она округляет дробные значения, что приводит к потере точности.
В соответствии со страницей man
:
Все числа представлены внутри в десятичном виде, и все вычисления выполняются в десятичном виде. (Эта версия усекает результаты операций деления и умножения.)
blockquote>Не могли бы вы предложить эквивалент до н. Э. для Ubuntu Maverick? Мне нужно сделать расширенные вычисления командной строки с переменными.
Вы можете установить длину дробной части с помощью scale=n
.
Команда echo 'scale=20;752/447' | bc
дает:
1.68232662192393736017
Обратите внимание, что, даже если число соответствует шкале, могут добавляться дополнительные нули:
scale=20
1/2
.50000000000000000000
К сожалению, вопрос округления:
scale=50
1/3*3
.99999999999999999999999999999999999999999999999999
Если у вас установлено octave
, вы можете использовать его в командной строке как:
octave --silent --eval 752/447
Чтобы сократить запись, вы можете добавить следующее в качестве псевдонима в .bashrc
alias ose='octave --silent --eval'
, а затем назвать его как ose 752/447
. Псевдоним / ярлык произвольный, но вам нужно перезапустить терминал, чтобы сделать его эффективным.
Вы можете установить octave
, используя:
sudo apt-get install octave
Конечно, с octave
вы можете использовать все дополнительные функции, доступные в нем.
Вот хороший пример:
spigot - точный реальный калькулятор командной строки
Я бы предложил использовать Python в качестве калькулятора командной строки:
$ python
>>> from math import *
>>> help(sin)
sin(x)
Return the sine of x (measured in radians).
Также я бы порекомендовал IPython или IDLE. И то, и другое значительно улучшает удобство использования стандартной оболочки.
Обновление : используйте python3, чтобы избежать неожиданностей усечения:
$ python3
[blockquote>10/3 3.3333333333333335
blockquote> blockquote> blockquote>
calc
(Я верю от пакета apcalc
) делает то же как bc
, но не делает вокруг. Это отображается так же к bc
, но в отличие от этого bc
, это понимает экспоненциальное представление. Пример:
> 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
;
Сравните 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
Немного поиска поднимает много результатов, не, все из которых релевантны, но я уверен, что несколько пробных версий получат Вас точно, что Вы хотите (wcalc, например):
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
«Гений» - самый продвинутый калькулятор, с доступными опциями командной строки и графического интерфейса. Подробности см. В руководстве и см. http://www.jirka.org/genius.html .
Чтобы установить, просто наберите:
sudo apt-get install genius gnome-genius
Вы потеряли точность в этом смысле: если установить точность до 10 десятичных цифр, деления усекаются до 10 десятичных цифр, и это последовательный выбор.
Если вы ищете точный калькулятор, вам нужна система символов, как maxima
.
Кстати, bc
поддерживает переменные.