it-swarm.com.de

Befehlszeilenrechner, der gebrochene Werte speichert

Ich habe gerade ein gutes Kommandozeilen-Rechnerprogramm namens bc gefunden und war damit zufrieden, bis ich herausfand, dass es gebrochene Werte rundet und dadurch Genauigkeitsverluste verursacht.

Entsprechend seiner man Seite:

Alle Zahlen werden intern dezimal dargestellt und alle Berechnungen erfolgen dezimal. (Diese Version schneidet Ergebnisse von Divisions- und Multiplikationsoperationen ab.)

Könnten Sie bitte ein Äquivalent von bc für Ubuntu Maverick vorschlagen? Ich muss erweiterte Befehlszeilenberechnungen mit Variablen durchführen.

11
sergionni

Sie können die Länge des Bruchteils mit scale=n einstellen.

Der Befehl echo 'scale=20;752/447' | bc ergibt:

1.68232662192393736017

Beachten Sie, dass auch wenn die Zahl in die Skala passt, möglicherweise zusätzliche Nullen angehängt werden:

scale=20
1/2
.50000000000000000000

Leider gibt es immer ein Rundungsproblem:

scale=50
1/3*3
.99999999999999999999999999999999999999999999999999
13
Lekensteyn

calc (ich glaube aus Paket apcalc) macht das gleiche wie bc, rundet aber nicht. Es wird ähnlich wie bc angezeigt, versteht jedoch im Gegensatz zu bc die wissenschaftliche Notation. Beispiel:

> 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
; 

Vergleichen Sie mit 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

Eine kleine Suche ergibt viele Ergebnisse, von denen nicht alle relevant sind, aber ich bin sicher, dass Sie mit ein paar Versuchen genau das bekommen, was Sie wollen (zum Beispiel 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
asoundmove

Ich würde vorschlagen, Python als Befehlszeilenrechner zu verwenden:

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

    Return the sine of x (measured in radians).

Auch würde ich IPython oder IDLE empfehlen. Beides verbessert die Benutzerfreundlichkeit der Standard-Shell enorm.

pdate: Verwenden Sie python3, um Überraschungen beim Abschneiden zu vermeiden:

$ python2.7

>>> 10/3
3

$ python3

>>> 10/3
3.3333333333333335
9
antimirov

In diesem Sinne haben Sie die Genauigkeit verloren: Wenn Sie die Genauigkeit auf 10 Dezimalstellen setzen, werden die Teilungen auf 10 Dezimalstellen gekürzt, und dies ist eine kohärente Wahl.

Wenn Sie einen genauen Taschenrechner suchen, benötigen Sie ein symbolisches System als maxima.

Übrigens unterstützt bc Variablen.

6
enzotib

"genius" ist der fortschrittlichste Rechner auf dem Markt, sowohl mit Befehlszeilen- als auch mit GUI-Optionen. Weitere Informationen finden Sie im Handbuch unter http://www.jirka.org/genius.html .

Geben Sie zum Installieren einfach Folgendes ein:

Sudo apt-get install genius gnome-genius
5
Paul Ogilive

Hier ist eine gute:

Spigot - Ein kommandozeilengenauer realer Rechner

1
Jens_G

Ich habe gerade eine einfache gemacht:

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

$ ratio <<< '14/15 * 3'
14/5 
1
William Casarin

Wenn Sie octave installiert haben, können Sie es in der Befehlszeile verwenden als:

octave --silent --eval 752/447

Um das Schreiben zu verkürzen, können Sie das Folgende als Alias ​​in .bashrc hinzufügen.

alias ose='octave --silent --eval'

und nennen Sie es dann ose 752/447. Der Alias ​​/ die Verknüpfung ist beliebig, aber Sie müssen das Terminal neu starten, damit es wirksam wird.

Sie können octave installieren mit:

Sudo apt-get install octave

Natürlich können Sie mit octave auch alle darin verfügbaren erweiterten Funktionen nutzen.

1
Harris