2015-05-18 43 views
1

我有一個計算問題。C型任意精度計算器通過變量

我需要通過一些變量來從命令行或腳本進行計算;這些變量是複數,如a=2+5i,b=1-i

我的目標是將此過程包含在bash腳本中;我已經測試類似

$ calc(){ awk "BEGIN { print "$*" }" ;} 
$ a=7; b=3; 
$ calc $a/$b 
2.33333 

但不幸的是,如果a或b都很複雜,我的代碼會失敗,從而給出錯誤而且不合理的結果。

我該如何解決這個問題?

+0

AWK沒有內置支持複數。你最好使用諸如python之類的語言來做到這一點。 –

回答

0

只需更改calc功能awk將其蟒蛇相當於:

$ calc() { python -c "print ($*)"; } 
$ calc 2 + 3 
5 
$ calc "(3 + 4j) * 2" 
(6+8j) 
$ calc "(2 + 5j)/(1 - 2j)" 
(-1.6+1.8j) 

如果你想/需要使用i代替j,改變功能
calc() { python -c "print (${*//[Ii]/j})"; }