
浮動小数点数を入力し、その数を使用して他のテキストボックスと合計し、結果をラベルに入れる複数のテキストボックスで構成されるフォームがあります。
次に、テキストボックスの値を変数(xbizとxbder)に入力して合計します。たとえば、次の結果を取得します。 xbiz = 5.2 xbder = 2.3
私の問題は、テキストボックスの1つが空のときです。(空白)スクリプトでは、「無効な浮動小数点値です!」エラーが発生します。これは、2つの変数のいずれかに値を入力しないことを意味します。
この問題を解決するには?
これは私のコードです。
#FORM
echo "FG 999999" >> $gui_in
echo "FONT cbr18" >> $gui_in
echo "BG 901010" >> $gui_in
echo "LABEL LOCATINES" >> $gui_in
echo "FG 101090" >> $gui_in
echo "FONT cbr18" >> $gui_in
echo "BG 708787" >> $gui_in
echo "TEXT xbiz X_BOT_IZQ" >> $gui_in
echo "TEXT xbder X_BOT_DER" >> $gui_in
#Calculation
set varx = `echo " $xbder + $xbiz" | bc -l`
#After calculate the values of the two variables (xbder + xbiz) I use the result in the following line:
COM display_layer,name=comp,display=yes,number=1
COM add_pad,attributes=no,**x=${varx},y=${varx}**,symbol=${sizefido},polarity=positive,\
angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,yscale=1
答え1
xbiz
bcは空であれば文句を言うxbder
(ここでbash).
$ echo "5.2 + " | bc -l
(standard_in) 2: syntax error
(テストされていません)のようなものが必要です。
if (! $?xbiz) set xbiz = 0
set varx = `echo " 5.2 + $xbiz" | bc -l`
if (! $?xbder) set xbder = 0
set vary = `echo " 5.2 + $xbder" | bc -l`