Калькулятор командной строки, который сохраняет дробные значения

Я просто нашел хорошую программу калькулятора командной строки, названную bc, и был доволен ею, пока не обнаружил, что она округляет дробные значения, что приводит к потере точности.

Согласно странице man: [ ! d2] Все числа представлены внутри десятичного числа, и все вычисления выполняются в десятичной системе. (Эта версия обрезает результаты операций деления и умножения.)

Не могли бы вы предложить эквивалент bc для Ubuntu Maverick? Мне нужно сделать расширенные вычисления командной строки с переменными.

1
задан 10 October 2017 в 06:44

7 ответов

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
9
ответ дан 25 May 2018 в 22:03

Я бы предложил использовать Python в качестве калькулятора командной строки:

$ python
>>> from math import *
>>> help(sin)
    sin(x)

    Return the sine of x (measured in radians).

Также я бы рекомендовал IPython или IDLE.

Обновление: используйте python3, чтобы избежать сюрпризов:

$ python3

10/3 3.3333333333333335
9
ответ дан 25 May 2018 в 22:03
  • 1
    Лучший калькулятор когда-либо. Вы могли бы сделать что угодно. – Owais Lone 17 April 2011 в 21:20
  • 2
    Это также урезает вычисления. – daithib8 29 July 2011 в 14:56
  • 3
    Это ничего не урезает, если вы разделите, например. например: 2.0 / 100. Конечно, 2/100 будет равно 0, потому что это целочисленное деление. – user205301 1 April 2015 в 21:06

Вы потеряли точность в этом смысле: если установлена ​​точность до десяти десятичных цифр, деления усекаются до десяти десятичных цифр, и это когерентный выбор.

Если вы ищете точный калькулятор, вам нужно символическая система как maxima.

Кстати, bc поддерживает переменные.

6
ответ дан 25 May 2018 в 22:03
  • 1
    да, я знаю, что он поддерживает переменные, вот я и прошу аналоговых – sergionni 17 April 2011 в 18:43

«гений» - это самый продвинутый калькулятор, доступный как в командной строке, так и в графическом интерфейсе. Подробнее см. В руководстве и см. Http://www.jirka.org/genius.html.

Чтобы установить, просто введите:

sudo apt-get install genius gnome-genius
5
ответ дан 25 May 2018 в 22:03

Вот хороший:

spigot - командный точный реальный калькулятор

1
ответ дан 25 May 2018 в 22:03

Если вы установили octave, вы можете использовать его в командной строке как:

octave --silent --eval 752/447

. Чтобы сократить длину записи, вы можете добавить следующее как псевдоним в .bashrc

[ f2]

, а затем назовите его как ose 752/447.

Вы можете установить octave, используя:

sudo apt-get install octave

Конечно, с octave вы можете установить octave вы можете использовать все расширенные функции, доступные в нем.

1
ответ дан 25 May 2018 в 22:03

Я просто сделал простой:

https://github.com/jb55/ratio-cli

$ ratio <<< '14/15 * 3'
14/5 
1
ответ дан 25 May 2018 в 22:03
  • 1
    поддерживает ли он переменные? – ravery 10 October 2017 в 06:40
  • 2
    сейчас просто мертво, просто основные выражения. возможно, однажды? – William Casarin 10 October 2017 в 06:47
  • 3
    ОП указал, что ему нужны переменные t handle – ravery 10 October 2017 в 06:55

Другие вопросы по тегам:

Похожие вопросы: