분수 값을 유지하는 명령 줄 계산기


11

방금 bc 라는 좋은 명령 줄 계산기 프로그램을 찾았고 분수 값을 반올림하여 정밀도가 떨어질 때까지 만족했습니다.

man페이지 에 따르면 :

모든 숫자는 내부적으로 10 진수로 표시되며 모든 계산은 10 진수로 수행됩니다. (이 버전은 나누기 및 곱하기 연산의 결과를 자릅니다.)

Ubuntu Maverick 에 bc 에 해당하는 것을 제안 할 수 있습니까? 변수를 사용하여 고급 명령 줄 계산을 수행해야합니다.

답변:


13

로 분수 부분의 길이를 설정할 수 있습니다 scale=n.

명령 echo 'scale=20;752/447' | bc은 다음을 생성합니다.

1.68232662192393736017

숫자가 스케일에 맞더라도 추가 0이 추가 될 수 있습니다.

scale=20
1/2
.50000000000000000000

불행히도 항상 반올림 문제가 있습니다.

scale=50
1/3*3
.99999999999999999999999999999999999999999999999999

스케일 값을 전역으로 설정할 수 있습니까? 아니면 항상 BC를 시작으로 명시 적으로 설정해야합니까?
sergionni

1
@sergionni : 항상 scale변수를로 전달해야 합니다 bc. 유용 할 있는 유일한 환경 변수 는 BC_ENV_ARGS입니다. 이 변수는에 몇 가지 인수를 넣 bc습니다. 표준 변수 또는 설정으로 파일을 만들고 설정할 수 BC_ENV_ARGS=/path/to/variables/file있습니다. 매뉴얼 페이지를 읽으십시오 .
Lekensteyn

을 통해 bc를 시작하는 경향이 bc -ql있습니다. -q저작권 배너를 숨기고 (일반적으로주의가 산만 함) -l수학 라이브러리를로드하고 자동으로 배율을 20으로 설정합니다. (참조 man bc)
i336_

9

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

파이썬을 명령 줄 계산기로 사용하는 것이 좋습니다.

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

    Return the sine of x (measured in radians).

또한 IPython 또는 IDLE을 권장합니다. 둘 다 표준 쉘의 유용성을 크게 향상시킵니다.

업데이트 : python3을 사용하여 잘림을 피하십시오.

$ python2.7

>>> 10/3
3

$ python3

>>> 10/3
3.3333333333333335

최고의 계산기. 당신은 무엇이든 할 수 있습니다.
Owais Lone

2
계산도 잘립니다.
daithib8

예를 들어 2.0 / 100과 같이 나누면 아무것도 잘리지 않습니다. 물론 2 / 100은 정수 나누기이므로 0과 같습니다.
user205301

6

이러한 의미에서 정밀도를 잃어 버렸습니다. 정밀도를 10 진수로 설정하면 나누기가 10 진수로 잘리고 이는 일관된 선택입니다.

정확한 계산기를 찾으려면와 같은 기호 시스템이 필요합니다 maxima.

그건 그렇고, bc변수를 지원합니다.


예, 변수를 지원한다는 것을 알고 있습니다. 아날로그를 요구하고 있습니다.
sergionni



1

octave설치 한 경우 명령 행에서 다음과 같이 사용할 수 있습니다.

octave --silent --eval 752/447

쓰기를 줄이려면 다음을 별칭으로 추가하면됩니다. .bashrc

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

그런 다음로 호출하십시오 ose 752/447. 별명 / 바로 가기는 임의적이지만 터미널을 다시 시작해야 효과적입니다.

다음을 octave사용하여 설치할 수 있습니다 .

sudo apt-get install octave

물론 octave사용 가능한 모든 고급 기능도 사용할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.