Xorg обнаружит автоматически корректный драйвер для Вашей видеокарты (который я думаю, Radeon). Используйте тестирование Debian, Ваш чипсет является слишком новым для стабильной версии.
$ printf %.10f\\n "$((10**9 * 20/7))e-9" # many shells. Not mksh.
$ echo "$((20.0/7))" # (ksh93/zsh/yash, not bash)
$ awk "BEGIN {print (20+5)/2}"
$ zcalc
$ bc <<< 20+5/2
$ bc <<< "scale=4; (20+5)/2"
$ dc <<< "4 k 20 5 + 2 / p"
$ expr 20 + 5
$ calc 2 + 4
$ node -pe 20+5/2 # Uses the power of JavaScript, e.g. : node -pe 20+5/Math.PI
$ echo 20 5 2 / + p | dc
$ echo 4 k 20 5 2 / + p | dc
$ perl -E "say 20+5/2"
$ python -c "print(20+5/2)"
$ python -c "print(20+5/2.0)"
$ clisp -x "(+ 2 2)"
$ lua -e "print(20+5/2)"
$ php -r 'echo 20+5/2;'
$ ruby -e 'p 20+5/2'
$ ruby -e 'p 20+5/2.0'
$ guile -c '(display (+ 20 (/ 5 2)))'
$ guile -c '(display (+ 20 (/ 5 2.0)))'
$ slsh -e 'printf("%f",20+5/2)'
$ slsh -e 'printf("%f",20+5/2.0)'
$ tclsh <<< 'puts [expr 20+5/2]'
$ tclsh <<< 'puts [expr 20+5/2.0]'
$ sqlite3 <<< 'select 20+5/2;'
$ sqlite3 <<< 'select 20+5/2.0;'
$ echo 'select 1 + 1;' | sqlite3
$ psql -tAc 'select 1+1'
$ R -q -e 'print(sd(rnorm(1000)))'
$ r -e 'cat(pi^2, "\n")'
$ r -e 'print(sum(1:100))'
$ smjs
$ jspl
Можно использовать расширение арифметики POSIX для целочисленной арифметики echo "$((...))"
:
$ echo "$((20+5))"
25
$ echo "$((20+5/2))"
22
Довольно портативный (ash dash yash bash ksh93 lksh zsh
):
Используя printf способность распечатать плавания мы можем расширить большинство оболочек, чтобы сделать математические операции с плавающей точкой хотя с ограниченным диапазоном (не больше, чем 10 цифр):
$ printf %.10f\\n "$((1000000000 * 20/7 ))e-9"
2.8571428570
ksh93
, yash
и zsh
действительно поддерживайте плавания здесь:
$ echo "$((1.2 / 3))"
0.4
только ksh93
(непосредственно) и zsh
загрузка библиотеки mathfunc здесь:
$ echo "$((4*atan(1)))"
3.14159265358979324
(zsh
должен загрузиться zmodload zsh/mathfunc
получить функции как atan
).
В интерактивном режиме с zsh:
$ autoload zcalc
$ zcalc
1> PI/2
1.5708
2> cos($1)
6.12323e-17
3> :sci 12
6.12323399574e-17
С (t) csh (только целое число):
% @ a=25 / 3; echo $a
8
В rc
семейство оболочек, akanga
тот с арифметическим расширением:
; echo $:25/3
8
bc
(см. ниже для интерактивного режима), руководство здесь
Мнемосхема: лучший калькулятор (хотя b
на самом деле для основного).
$ echo 20+5/2 | bc
22
$ echo 'scale=4;20+5/2' | bc
22.5000
(числа произвольной точности поддержек)
до н.э интерактивный режим:
$ bc
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'.
5+5
10
2.2+3.3
5.5
Решение порыва, expr
(никакой интерактивный режим):
$ expr 20 + 5
25
$ expr 20 + 5 / 2
22
Решение Joshua: awk
(никакой интерактивный режим):
$ calc() { awk "BEGIN{print $*}"; }
$ calc 1/3
0.333333
Решение Arcege, dc
(интерактивный режим: dc
):
Который является еще большим количеством забавы, так как она работает обратной польской записью.
$ echo 20 5 2 / + p | dc
22
$ echo 4 k 20 5 2 / + p | dc
22.5000
Но не как практичный, если Вы не работаете с обратной польской записью много.
Отметьте это dc
предшествует bc
и bc
был исторически реализован как обертка вокруг dc
но dc
не был стандартизирован POSIX
DQdims's calc
(необходимый sudo apt-get install apcalc)
:
$ calc 2 + 4
6
решение manatwork, node
(интерактивный режим: node
; не нужная функция вывода):
$ node -pe 20+5/2 # Uses the power of JavaScript, e.g. : node -pe 20+5/Math.PI
22.5
Perl (интерактивный режим: perl -de 1
):
$ perl -E "say 20+5/2"
22.5
Python (интерактивный режим: python
; не нужная функция вывода):
$ python -c "print(20+5/2)"
22 # 22.5 with python3
$ python -c "print(20+5/2.0)"
22.5
Также числа произвольной точности поддержек:
$ python -c 'print(2**1234)'
295811224608098629060044695716103590786339687135372992239556207050657350796238924261053837248378050186443647759070955993120820899330381760937027212482840944941362110665443775183495726811929203861182015218323892077355983393191208928867652655993602487903113708549402668624521100611794270340232766099317098048887493809023127398253860618772619035009883272941129544640111837184
Если Вы имеете clisp
установленный, можно также использовать польскую запись:
$ clisp -x "(+ 2 2)"
Решение Marco, lua
(интерактивный режим: lua
):
$ lua -e "print(20+5/2)"
22.5
PHP (интерактивный режим: php -a
):
$ php -r 'echo 20+5/2;'
22.5
Ruby (интерактивный режим: irb
; не нужная функция вывода):
$ ruby -e 'p 20+5/2'
22
$ ruby -e 'p 20+5/2.0'
22.5
Хитрость (интерактивный режим: guile
):
$ guile -c '(display (+ 20 (/ 5 2)))'
45/2
$ guile -c '(display (+ 20 (/ 5 2.0)))'
22.5
Сленг (интерактивный режим: slsh
; не нужная функция вывода, просто a ;
разделитель):
$ slsh -e 'printf("%f",20+5/2)'
22.000000
$ slsh -e 'printf("%f",20+5/2.0)'
22.500000
Tcl (интерактивный режим: tclsh
; не нужная функция вывода, но expr
):
$ tclsh <<< 'puts [expr 20+5/2]'
22
$ tclsh <<< 'puts [expr 20+5/2.0]'
22.5
Оболочки JavaScript:
$ smjs
js> 25/3
8.333333333333334
js>
$ jspl
JSC: 25/3
RP: 8.33333333333333
RJS: [object Number]
JSC:
Good bye...
$ node
> 25/3
8.333333333333334
>
SQLite (интерактивный режим: sqlite3
):
$ sqlite3 <<< 'select 20+5/2;'
22
$ sqlite3 <<< 'select 20+5/2.0;'
22.5
MySQL:
mysql -BNe 'select 1+1'
PostgreSQL:
psql -tAc 'select 1+1
Опции _The на mysql и пост-ГРЭС останавливают 'изображение' искусства ASCII!
R в простом режиме - позволяет, генерируют 1 000 Нормальных случайных чисел и получают стандартное отклонение и печатают его
$ R -q -e 'print(sd(rnorm(1000)))'
> print(sd(rnorm(1000)))
[1] 1.031997
R использование littler сценария - позволяет пи печати, в квадрате
$ r -e 'cat(pi^2, "\n")'
9.869604
$ r -e 'print(sum(1:100))'
[1] 5050
PARI/GP, обширная компьютерная система алгебры для теории чисел, линейной алгебры и многих других вещей
$ echo "prime(1000)"|gp -q
7919 // the 1000th prime
$ echo "factor(1000)" | gp -q
[2 3]
[5 3] // 2^3*5^3
$ echo "sum(x=1,5,x)" | gp -q
15 // 1+2+3+4+5
Октава GNU (высокоуровневый интерпретируемый язык, прежде всего, предназначенный для числовых вычислений)
Также комплексные числа поддержек:
$ octave
>> 1.2 / 7
ans = 0.17143
>> sqrt(-1)
ans = 0 + 1i
Julia, высокоэффективный язык и интерпретатор для научных и числовых вычислений.
Неинтерактивная опция:
$ julia -E '2.5+3.7'
6.2
$ printf %.10f\\n "$((10**9 * 20/7))e-9" # many shells. Not mksh.
$ echo "$((20.0/7))" # (ksh93/zsh/yash, not bash)
$ awk "BEGIN {print (20+5)/2}"
$ zcalc
$ bc <<< 20+5/2
$ bc <<< "scale=4; (20+5)/2"
$ dc <<< "4 k 20 5 + 2 / p"
$ expr 20 + 5
$ calc 2 + 4
$ node -pe 20+5/2 # Uses the power of JavaScript, e.g. : node -pe 20+5/Math.PI
$ echo 20 5 2 / + p | dc
$ echo 4 k 20 5 2 / + p | dc
$ perl -E "say 20+5/2"
$ python -c "print(20+5/2)"
$ python -c "print(20+5/2.0)"
$ clisp -x "(+ 2 2)"
$ lua -e "print(20+5/2)"
$ php -r 'echo 20+5/2;'
$ ruby -e 'p 20+5/2'
$ ruby -e 'p 20+5/2.0'
$ guile -c '(display (+ 20 (/ 5 2)))'
$ guile -c '(display (+ 20 (/ 5 2.0)))'
$ slsh -e 'printf("%f",20+5/2)'
$ slsh -e 'printf("%f",20+5/2.0)'
$ tclsh <<< 'puts [expr 20+5/2]'
$ tclsh <<< 'puts [expr 20+5/2.0]'
$ sqlite3 <<< 'select 20+5/2;'
$ sqlite3 <<< 'select 20+5/2.0;'
$ echo 'select 1 + 1;' | sqlite3
$ psql -tAc 'select 1+1'
$ R -q -e 'print(sd(rnorm(1000)))'
$ r -e 'cat(pi^2, "\n")'
$ r -e 'print(sum(1:100))'
$ smjs
$ jspl
Можно использовать расширение арифметики POSIX для целочисленной арифметики echo "$((...))"
:
$ echo "$((20+5))"
25
$ echo "$((20+5/2))"
22
Довольно портативный (ash dash yash bash ksh93 lksh zsh
):
Используя printf способность распечатать плавания мы можем расширить большинство оболочек, чтобы сделать математические операции с плавающей точкой хотя с ограниченным диапазоном (не больше, чем 10 цифр):
$ printf %.10f\\n "$((1000000000 * 20/7 ))e-9"
2.8571428570
ksh93
, yash
и zsh
действительно поддерживайте плавания здесь:
$ echo "$((1.2 / 3))"
0.4
только ksh93
(непосредственно) и zsh
загрузка библиотеки mathfunc здесь:
$ echo "$((4*atan(1)))"
3.14159265358979324
(zsh
должен загрузиться zmodload zsh/mathfunc
получить функции как atan
).
В интерактивном режиме с zsh:
$ autoload zcalc
$ zcalc
1> PI/2
1.5708
2> cos($1)
6.12323e-17
3> :sci 12
6.12323399574e-17
С (t) csh (только целое число):
% @ a=25 / 3; echo $a
8
В rc
семейство оболочек, akanga
тот с арифметическим расширением:
; echo $:25/3
8
bc
(см. ниже для интерактивного режима), руководство здесь
Мнемосхема: лучший калькулятор (хотя b
на самом деле для основного).
$ echo 20+5/2 | bc
22
$ echo 'scale=4;20+5/2' | bc
22.5000
(числа произвольной точности поддержек)
до н.э интерактивный режим:
$ bc
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'.
5+5
10
2.2+3.3
5.5
Решение порыва, expr
(никакой интерактивный режим):
$ expr 20 + 5
25
$ expr 20 + 5 / 2
22
Решение Joshua: awk
(никакой интерактивный режим):
$ calc() { awk "BEGIN{print $*}"; }
$ calc 1/3
0.333333
Решение Arcege, dc
(интерактивный режим: dc
):
Который является еще большим количеством забавы, так как она работает обратной польской записью.
$ echo 20 5 2 / + p | dc
22
$ echo 4 k 20 5 2 / + p | dc
22.5000
Но не как практичный, если Вы не работаете с обратной польской записью много.
Отметьте это dc
предшествует bc
и bc
был исторически реализован как обертка вокруг dc
но dc
не был стандартизирован POSIX
DQdims's calc
(необходимый sudo apt-get install apcalc)
:
$ calc 2 + 4
6
решение manatwork, node
(интерактивный режим: node
; не нужная функция вывода):
$ node -pe 20+5/2 # Uses the power of JavaScript, e.g. : node -pe 20+5/Math.PI
22.5
Perl (интерактивный режим: perl -de 1
):
$ perl -E "say 20+5/2"
22.5
Python (интерактивный режим: python
; не нужная функция вывода):
$ python -c "print(20+5/2)"
22 # 22.5 with python3
$ python -c "print(20+5/2.0)"
22.5
Также числа произвольной точности поддержек:
$ python -c 'print(2**1234)'
295811224608098629060044695716103590786339687135372992239556207050657350796238924261053837248378050186443647759070955993120820899330381760937027212482840944941362110665443775183495726811929203861182015218323892077355983393191208928867652655993602487903113708549402668624521100611794270340232766099317098048887493809023127398253860618772619035009883272941129544640111837184
Если Вы имеете clisp
установленный, можно также использовать польскую запись:
$ clisp -x "(+ 2 2)"
Решение Marco, lua
(интерактивный режим: lua
):
$ lua -e "print(20+5/2)"
22.5
PHP (интерактивный режим: php -a
):
$ php -r 'echo 20+5/2;'
22.5
Ruby (интерактивный режим: irb
; не нужная функция вывода):
$ ruby -e 'p 20+5/2'
22
$ ruby -e 'p 20+5/2.0'
22.5
Хитрость (интерактивный режим: guile
):
$ guile -c '(display (+ 20 (/ 5 2)))'
45/2
$ guile -c '(display (+ 20 (/ 5 2.0)))'
22.5
Сленг (интерактивный режим: slsh
; не нужная функция вывода, просто a ;
разделитель):
$ slsh -e 'printf("%f",20+5/2)'
22.000000
$ slsh -e 'printf("%f",20+5/2.0)'
22.500000
Tcl (интерактивный режим: tclsh
; не нужная функция вывода, но expr
):
$ tclsh <<< 'puts [expr 20+5/2]'
22
$ tclsh <<< 'puts [expr 20+5/2.0]'
22.5
Оболочки JavaScript:
$ smjs
js> 25/3
8.333333333333334
js>
$ jspl
JSC: 25/3
RP: 8.33333333333333
RJS: [object Number]
JSC:
Good bye...
$ node
> 25/3
8.333333333333334
>
SQLite (интерактивный режим: sqlite3
):
$ sqlite3 <<< 'select 20+5/2;'
22
$ sqlite3 <<< 'select 20+5/2.0;'
22.5
MySQL:
mysql -BNe 'select 1+1'
PostgreSQL:
psql -tAc 'select 1+1
Опции _The на mysql и пост-ГРЭС останавливают 'изображение' искусства ASCII!
R в простом режиме - позволяет, генерируют 1 000 Нормальных случайных чисел и получают стандартное отклонение и печатают его
$ R -q -e 'print(sd(rnorm(1000)))'
> print(sd(rnorm(1000)))
[1] 1.031997
R использование littler сценария - позволяет пи печати, в квадрате
$ r -e 'cat(pi^2, "\n")'
9.869604
$ r -e 'print(sum(1:100))'
[1] 5050
PARI/GP, обширная компьютерная система алгебры для теории чисел, линейной алгебры и многих других вещей
$ echo "prime(1000)"|gp -q
7919 // the 1000th prime
$ echo "factor(1000)" | gp -q
[2 3]
[5 3] // 2^3*5^3
$ echo "sum(x=1,5,x)" | gp -q
15 // 1+2+3+4+5
Октава GNU (высокоуровневый интерпретируемый язык, прежде всего, предназначенный для числовых вычислений)
Также комплексные числа поддержек:
$ octave
>> 1.2 / 7
ans = 0.17143
>> sqrt(-1)
ans = 0 + 1i
Julia, высокоэффективный язык и интерпретатор для научных и числовых вычислений.
Неинтерактивная опция:
$ julia -E '2.5+3.7'
6.2
SQLite:
echo 'select 1 + 1;' | sqlite3
MySQL:
mysql -e 'select 1 + 1 from dual;'
PostgreSQL:
psql -c 'select 1 + 1 as sum;'
from dual
необходим Oracle, MySQL может select
без from
пункт. 2) PostgreSQL не требует псевдонима. 3) ;
только требуется SQLite. 4) MySQL и PostgreSQL будут работать, только если они могут соединиться с сервером базы данных. 5) MySQL и PostgreSQL потянут таблицу ASCII-творчества вокруг результатов. Получить только значение: mysql -BNe 'select 1+1'
и psql -tAc 'select 1+1
.
– manatwork
16.06.2012, 18:00
Для консольных вычислений я использую concalc
. (sudo aptitude install concalc
)
После этого просто введите concalc
и хит входит. Это не предоставит подсказку, но просто введет в Вашем вычислении (никакие пробелы) и совершит нападки, входят, и в следующую строку, это даст Вам числовое значение.
Для консольных вычислений я использую concalc
. (sudo aptitude install concalc
)
После этого просто введите concalc
и хит входит. Это не предоставит подсказку, но просто введет в Вашем вычислении (никакие пробелы) и совершит нападки, входят, и в следующую строку, это даст Вам числовое значение.
Я использую немного сценария Python, который оценит выражение Python и распечатает результат, затем я могу выполнить что-то как
$ pc '[i ** 2 for i in range(10)]'
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
сценарий:
#!/usr/local/bin/python3
import sys
import traceback
from codeop import CommandCompiler
compile = CommandCompiler()
filename = "<input>"
source = ' '.join(sys.argv[1:]) + '\n'
try:
code = compile(source, filename)
except (OverflowError, SyntaxError, ValueError):
type, value, sys.last_traceback = sys.exc_info()
sys.last_type = type
sys.last_value = value
if filename and type is SyntaxError:
# Work hard to stuff the correct filename in the exception
try:
msg, (dummy_filename, lineno, offset, line) = value.args
except ValueError:
# Not the format we expect; leave it alone
pass
else:
# Stuff in the right filename
value = SyntaxError(msg, (filename, lineno, offset, line))
sys.last_value = value
lines = traceback.format_exception_only(type, value)
print(''.join(lines))
else:
if code:
exec(code)
else:
print('incomplete')
К сожалению, я не помню, где я одолжил большую часть кода у, таким образом, я не могу процитировать его.
$> ghc -e '20 + 5'
25
it :: Integer
Также ghci
, это - Компилятор Глазго-Haskell в интерактивном режиме (ghc --interactive
, в противоположность ему, оценивая выражение с -e
), делает для захватывающего "калькулятора":
$>ghci
GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> pi
3.141592653589793
Prelude> ceiling pi
4
Prelude> compare 1 2
LT
Я не могу верить для чтения "питания JavaScript" (но у меня был к upvote ответ для других частей, кроме жемчуга, конечно.
Практически, для простых случаев, где целочисленная арифметика достаточна, я использую $ здания ((...)) и рекомендую это. Еще, почти во всем эхе случаев "..." | до н.э достаточно.
Для некоторых арифметических операций как статистика, операций над матрицей и больше R
лучший инструмент:
echo 25 + 5 | R --vanilla
и поскольку небольшие наборы данных и графический бросок далеко заканчивается, oocalc
хорошая утилита.
Мне нравится разжигать Python и использовать его в качестве интерактивного калькулятора (но с другой стороны, я - Python программист).
Можно использовать calc
:
Если Вы просто входите 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.]
; 2+4
6
; 3+5
8
; 3.4+5
8.4
; 2^4
16
; exit
Или Вы используете его с выражением как аргумент, и это предоставит ответ и затем выйдет
$calc 2 + 4
6
$
calc
подобно bc
, Я точно так же, как путь это ведет себя как значение по умолчанию лучше
calc -e '2+4; 3+5; 3.4+5; 2^4
печать 4 выходных строки, или просто calc -e 33+(3^3)
.. +1 мне нравится идея использовать что-то позвонившее 'calc' для калькулятора :)
– Peter.O
14.06.2012, 21:47
-e
опция не нужна, когда существует только одно выражение... аккуратное!..
– Peter.O
15.06.2012, 04:19
Вы могли использовать bc
. Например,
$ echo "25 + 5" | bc
30
Кроме того, bc <<< 25+5
будет также работать.
Или в интерактивном режиме, если Вы хотите сделать больше, чем просто единственное простое вычисление:
$ bc
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'.
25 + 5
30
Реализация GNU bc
печать, что информация о заголовке/авторском праве о запуске, когда и его stdin и stdout переходят к терминалу. Можно подавить его с (определенный для GNU) -q
опция. Для получения дополнительной информации см. до н.э страницу справочника
ctrl-d
выходить?
– Michael Durrant
14.06.2012, 17:49
Никто еще не упомянул awk?
Используя функции оболочки POSIX и awk математическое питание, просто определите это (одна строка) функция:
calc(){ awk "BEGIN { print $*}"; }
Затем просто выполните вещи как calc 1+1
или calc 5/2
Примечание: Для создания функции всегда доступной добавьте его к ~/.bashrc (или файл запуска соответствующей оболочки)
Конечно, немного сценария, названного "calc" со следующим содержанием:
#!/bin/sh -
awk "BEGIN { print $* }"
мог также работать.
a=0; b=0.0; if echo "$a" "$b" | awk '{ exit ($1 == $2) ? 0 : 1 }'; then echo 'equals'; else echo 'not equals'; fi
– Paul Tobias
01.12.2015, 08:55
Упомянутые решения хорошо для очень простых вычислений, но очень подверженные ошибкам. Примеры:
# without spaces expr 20+5 produces literally 20+5
expr 20+5
→ 20+5
# bc's result doesn't give the fractional part by default
bc <<< 9.0/2.0
→ 4
# expr does only integer
expr 9 / 2
→ 4
# same for POSIX arithmetic expansion
echo $((9/2))
→ 4
# bash arithmetic expansion chokes on floats
echo $((9.0/2.0))
→ bash: 9/2.0: syntax error: invalid arithmetic operator (error token is ".0")
# Most `expr` implementations also have problems with floats
expr 9.0 / 2.0
→ expr: non-integer argument
Синтаксическая ошибка как последние легко замечена, но целочисленные ответы с отброшенной частью плавающей могут легко остаться незамеченными и привести к неправильным результатам.
Вот почему я всегда использую язык сценариев как Lua для этого. Но можно выбрать любой язык сценариев, с которым Вы знакомы. Я просто использую Lua в качестве примера. Преимущества
Примеры:
lua -e "print(9/2)"
→ 4.5
lua -e "print(9 / 2)"
→ 4.5
lua -e "print(9.0/2)"
→ 4.5
lua -e "print (9 /2.)"
→ 4.5
lua -e "print(math.sqrt(9))"
→ 3
bc
результатом не является целое число, просто округленное к scale
, то, кто значение по умолчанию, 0. Так bc <<< 'scale=4;9.0/2.0'
если Вы хотите дробную часть.
– manatwork
14.06.2012, 19:16
scale
если я использую bc
за несколько недель?Наверное, нет. И даже если будет способ изменить его постоянно, то это укусит Вас, если Вы будете в системе с настройками по умолчанию.
– Marco
14.06.2012, 19:26
scale
так как я встретился bc
в первый раз несколько лет назад. Но я всегда забывал ли функция вывода в lua
put
или puts
. ;)
– manatwork
14.06.2012, 20:06
bc -l
вместо плоскости bc
, затем никогда беспокойство о scale
.
– Dalker
01.05.2013, 22:54
Существует много способов вычислить. Для простых выражений можно использовать bash
самостоятельно:
echo $((20+5))
или expr
:
expr 20 + 5
И для сложных случаев существует большой инструмент bc
:
echo "20+5" | bc
Btw, до н.э может вычислить даже очень сложное выражение с корнями, логарифмами, потому что, грешите и так далее.
expr
опция к принятому ответу. Должен был выбрать, чтобы принять и централизовать.
– Michael Durrant
14.06.2012, 18:11
expr 20+5
. Необходимо ввести пробелы между числами и плюс заставить его работать: expr 20 + 5
. Это важно.
– rush
22.06.2012, 17:14
Начиная ни с кого еще упомянул это, и хотя это не строго калькулятор (но ни один не все эти языки сценариев общего назначения), я хотел бы упомянуть units
:
$ units "1 + 1"
Definition: 2
$ units "1 lb" "kg"
* 0.45359237
/ 2.2046226
Или, для менее вывода, таким образом, можно заставить просто число использовать в $()
присваивать чему-то:
$ units -t "1 + 1"
2
$ units -t "1 lb" "kg"
0.4539237
И это даже делает температурные преобразования
$ units -t "tempC(20)" "tempF"
68
Для получения температурного преобразования в выражении для дальнейшего вычисления сделайте это:
$ units -t "~tempF(tempC(20))+1"
68.1
с помощью прилагаемой программы [118939]run-expr[118940]:
Загрузите и извлеките (вам понадобится громкая связь): [119136]tar -xvf gmp-5.1.3.tar.lz
В верхнем каталоге [119138]/configure[119139] и [119140]make[119141] (установка не требуется)
В демо-версиях/expr, [119142]make run-expr
Вывод:
gnuplot - интерактивная программа для построения графиков
Следуйте по указанной выше ссылке или наберите gnuplot
и затем help
внутри интерпретатора gnuplot.
Gnuplot - это программа, рожденная для построения графических данных, но она также может быть использована для вычислений. Преимуществом этой программы является возможность определения функций или использования встроенных.
echo "pr 20+5/2" | gnuplot # Lazy-note `pr` instead of print
22 # Integer calculation & result
echo "pr 20.+5/2" | gnuplot # Lazy-note `pr` instead of print
22.0 # Floating point result
echo "pr sin(2*pi/3.)" | gnuplot # Some functions ...
0.866025403784439
Система ROOT предоставляет набор OO-фреймворков со всеми функциональными возможностями, необходимыми для обработки и анализа больших объемов данных очень эффективным способом....
Вы можете использовать ее как C интерпретатор , CINT, или же вы можете использовать один из многих других C интерпретаторов . IMHO, он огромный, сложный, мощный, и не всегда дружелюбный, но может дать и большое удовлетворение.
Если Вы действительно не хотите слушать внутри себя маленький голос, который цитирует Confucio , и Вы готовы разбить (масляную) мушку на колесе , Вы можете использовать root . В этом случае -l
является обязательным, чтобы избежать появления заставки....
echo "20+5/2" | root -l
(const int)22
echo "20+5/2." | root -l
(const double)2.25000000000000000e+01
echo "cout<< 20+5/2 << endl;" | root -l
22
Bash
ECHO $ ((1 + 1))
Рыба
Математика 1 + 1
ZSH *
ECHO $ ((1 + 1))
*: и KSH93, Яш
Bash
awk "начать { Печать 10/3} "
(низкая точность) Bash
Echo« 10/3 »| BC -L
(высокая точность) Рыба
Математика - S4 10/3
ZSH *
ECHO $ ((10./3) )
*: и ksh93, Яш
Вы можете, конечно, можно настроить вашу оболочку, чтобы использовать awk с минимальным типом CALC 10 / 3
(см. Примечания о том, как сделать это для Bash 1 и Рыба 2 ).
Основная причина предположения awk для bash заключается в том, что она предустановлена практически всех Unix-подобных ОС и достаточно света (есть, конечно, стоимость запуска процесса) с менее точным, но более удобным для человека, чем BC -L
, который печатает 20 десятичных цифр (хотя вы, безусловно, настроить awk, чтобы получить более десятичные цифры ).
Добавьте эту функцию Bash в ваш ~ / .bashrc
:
calc(){ awk "BEGIN { print $*}"; }
Создать CALC
Функция рыб (то есть текстовый файл с именем /home/ndemou/.config/fish/functions/calc.fish
):
function calc
awk "BEGIN{ print $argv }" ;
end
whatis bc
->An arbitrary precision calculator language
Интересный!Спасибо! – Michael Durrant 14.06.2012, 17:48dc
, который является еще большим количеством забавы, так как она работает обратной польской записью.echo 20 5 + p | dc
Но не как практичный, если Вы не работаете с обратной польской записью много. – Arcege 14.06.2012, 18:11## Command line calculator calc () { bc -l <<< "$@" }
– Joe 16.06.2012, 21:59math
встроенный (или независимо от того, что это называют теперь), поскольку мы говорим. Не стесняйтесь редактировать. Это не мой ответ, и это - общественная Wiki. – Stéphane Chazelas 20.12.2017, 23:18