2014-06-16 4 views
1

Относительно this question, я хотел бы определить BC m4 макрос этой функции:m4 препроцессора BC макрос

syscmd(bc <<< "scale=6; print ARITHMETIC_OPERATION_STRING") 

NB: Это просто обрабатывать арифметическую операцию с bc, напр: syscmd(bc <<< "scale=6; print 1.2*2") => 2.4

Я думаю, что-то вроде:

define(`BC', syscmd(bc <<< "scale=6; print $1")) 

но как расширить другие переменные B C аргумент, например:

define(`ONEPOINTTWO', `1.2') 
define(`TWO', `2') 

BC(ONEPOINTTWO*TWO) 
=> 2.4 

Спасибо

ответ

2
define(`BC', `syscmd(echo "scale=6; print $1" | bc)') 

затем:

BC(ONEPOINTTWO*TWO) 
=> 2.4 
Смежные вопросы