เครื่องคิดเลขบรรทัดคำสั่งที่เก็บค่าเศษส่วน


11

ฉันเพิ่งพบโปรแกรมเครื่องคิดเลขบรรทัดคำสั่งที่ดีที่เรียกว่าbcและพอใจกับมันจนกระทั่งฉันค้นพบว่ามันปัดเศษค่าเศษส่วนทำให้สูญเสียความแม่นยำ

ตามmanหน้า:

ตัวเลขทั้งหมดจะแสดงภายในเป็นทศนิยมและการคำนวณทั้งหมดจะทำในรูปทศนิยม (เวอร์ชั่นนี้ตัดผลลัพธ์จากการหารและการคูณ)

คุณช่วยแนะนำbc ที่เทียบเท่ากับ Ubuntu ได้ไหม? ฉันต้องทำการคำนวณบรรทัดคำสั่งขั้นสูงพร้อมตัวแปร

คำตอบ:


13

คุณสามารถตั้งค่าความยาวของส่วนที่เป็นเศษส่วนscale=nได้

คำสั่งecho 'scale=20;752/447' | bcให้ผล:

1.68232662192393736017

โปรดทราบว่าแม้ว่าตัวเลขจะพอดีกับสเกล แต่อาจมีการเพิ่มศูนย์เป็นศูนย์:

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 เป็นเครื่องคิดเลขแบบบรรทัดคำสั่ง:

$ 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

5

"อัจฉริยะ" เป็นเครื่องคิดเลขที่ทันสมัยที่สุดพร้อมทั้งตัวเลือกบรรทัดคำสั่งและ GUI ตรวจสอบคู่มือสำหรับรายละเอียดและดูhttp://www.jirka.org/genius.html

หากต้องการติดตั้งเพียงพิมพ์:

sudo apt-get install genius gnome-genius


1

หากคุณoctaveติดตั้งคุณสามารถใช้งานได้ที่บรรทัดคำสั่งเป็น:

octave --silent --eval 752/447

หากต้องการย่อการเขียนให้สั้นลงคุณสามารถเพิ่มสิ่งต่อไปนี้เป็นนามแฝงได้ .bashrc

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

ose 752/447แล้วเรียกว่าเป็น นามแฝง / ทางลัดนั้นเป็นกฎเกณฑ์ แต่คุณต้องรีสตาร์ทเครื่องเพื่อให้มีประสิทธิภาพ

คุณสามารถติดตั้งoctaveโดยใช้:

sudo apt-get install octave

แน่นอนว่าoctaveคุณสามารถใช้ฟังก์ชั่นขั้นสูงทั้งหมดที่มีอยู่ในนั้นได้เช่นกัน


1

ฉันเพิ่งทำง่ายๆ

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

$ ratio <<< '14/15 * 3'
14/5 

รองรับตัวแปรหรือไม่
ravery

มันง่ายมากตอนนี้เหลือแค่การแสดงออกพื้นฐาน อาจจะมีสักวันหนึ่ง?
William Casarin

OP ระบุว่าต้องการตัวแปรจัดการ
ravery
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.