Kesirli değerleri tutan komut satırı hesaplayıcısı


11

Ben sadece bc adlı iyi bir komut satırı hesap makinesi programı buldum ve ben kesirli değerleri yuvarlar keşfetti kadar memnun kaldı, böylece hassasiyet kaybına neden.

manSayfasına göre :

Tüm sayılar dahili olarak ondalık olarak gösterilir ve tüm hesaplama ondalık olarak yapılır. (Bu sürüm bölme ve çarpma işlemlerinin sonuçlarını keser.)

Lütfen Ubuntu Maverick için bir bc eşdeğeri önerebilir misiniz ? Değişkenlerle gelişmiş komut satırı hesaplamaları yapmam gerekiyor.

Yanıtlar:


13

İle kesirli kısmın uzunluğunu ayarlayabilirsiniz scale=n.

Komut şunu echo 'scale=20;752/447' | bcverir:

1.68232662192393736017

Sayı ölçeğe sığsa bile, ek sıfırların eklenebileceğini unutmayın:

scale=20
1/2
.50000000000000000000

Ne yazık ki, her zaman bir yuvarlama sorunu vardır:

scale=50
1/3*3
.99999999999999999999999999999999999999999999999999

ölçek değeri küresel olarak ayarlanabilir veya her zaman açıkça whet start bc ayarlamalıyım?
sergionni

1
@sergionni: scaleDeğişkeni her zaman iletmelisiniz bc. Yararlı olabilecek tek ortam değişkeni BC_ENV_ARGS. Bu değişken bazı argümanlar koyar bc, standart değişkenler veya ayarlarla bir dosya oluşturabilir ve ayarlayabilirsiniz BC_ENV_ARGS=/path/to/variables/file. Lütfen kılavuz sayfasını okuyun .
Lekensteyn

BC ile başlama eğilimindeyim bc -ql. -q(genellikle dikkat dağıtıcı olduğunu kanıtlayan) telif hakkı başlığını gizler ve -lmatematik kütüphanesini yükler ve ölçeği otomatik olarak 20'ye ayarlar. (Bkz man bc.)
i336_

9

calc(Paketten inanıyorum apcalc) aynı şeyi yapıyor bc, ama yuvarlak değil. Bilimsel gösterimi benzer şekilde gösterir bc, ancak aksine bcgösterimi anlar. Misal:

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

Şununla karşılaştır 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

Küçük bir arama, hepsi alakalı olmayan çok sayıda sonuç ortaya çıkarır, ancak birkaç denemenin tam olarak istediğinizi elde edeceğinden eminim (örneğin, 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

Bir komut satırı hesap makinesi olarak Python kullanmanızı öneririm:

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

    Return the sine of x (measured in radians).

Ayrıca IPython veya IDLE öneririm. Her ikisi de standart kabuğun kullanılabilirliğini büyük ölçüde geliştirir.

Güncelleme : kesme sürprizlerinden kaçınmak için python3 kullanın:

$ python2.7

>>> 10/3
3

$ python3

>>> 10/3
3.3333333333333335

Şimdiye kadarki en iyi hesap makinesi. Her şeyi yapabilirsin.
Owais Lone

2
Bu da hesaplamaları kesiyor.
daithib8

Örneğin şu şekilde böldüğünüzde hiçbir şey kesilmez: 2.0 / 100. Elbette 2/100, 0'a eşit olacaktır, çünkü bu bir tamsayı bölümüdür.
user205301

6

Bu anlamda kesinlik kaybettiniz: kesinlik 10 ondalık basamağa ayarlanırsa, bölünmeler 10 ondalık basamağa kesilir ve bu tutarlı bir seçimdir.

Kesin bir hesap makinesi arıyorsanız, simgesel bir sisteme ihtiyacınız vardır maxima.

Bu arada, bcdeğişkenleri destekler.


evet, değişkenleri desteklediğini biliyorum, bu analog için soruyorum
sergionni



1

Yüklediyseniz octave, komut satırında şu şekilde kullanabilirsiniz:

octave --silent --eval 752/447

Yazıyı kısaltmak için aşağıdakileri takma ad olarak ekleyebilirsiniz. .bashrc

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

ve sonra olarak adlandırın ose 752/447. Takma ad / kısayol isteğe bağlıdır, ancak etkinleştirmek için terminali yeniden başlatmanız gerekir.

Şunları kullanarak kurabilirsiniz octave:

sudo apt-get install octave

Tabii ki, içinde bulunan octavetüm gelişmiş fonksiyonları da kullanabilirsiniz.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.