非法浮点值“错误”c-shell

非法浮点值“错误”c-shell

我有一个由几个文本框组成的表单,在其中输入浮点数并使用该数字与其他文本框求和并将结果放入标签中。

然后,我将文本框的值输入到变量(xbiz 和 xbder)中,然后对其求和,例如,我得到以下结果:xbiz = 5.2 xbder = 2.3

我的问题是当其中一个文本框为空时(空白)脚本给我一个错误“非法浮点值!”我的意思是,如果我没有在两个变量中的任何一个中输入值

如何解决这个问题呢?

这是我的代码:

#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

如果xbizorxbder为空,bc 会抱怨(此处为 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`

相关内容