無効な浮動小数点値 'エラー' c-shell

無効な浮動小数点値 'エラー' c-shell

浮動小数点数を入力し、その数を使用して他のテキストボックスと合計し、結果をラベルに入れる複数のテキストボックスで構成されるフォームがあります。

次に、テキストボックスの値を変数(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

xbizbcは空であれば文句を言う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`

おすすめ記事