Valor de flutuação ilegal “error” c-shell

1

Eu tenho um formulário feito com algumas caixas de texto, nas quais eu insiro números flutuantes e uso esse número para somar com outra caixa de texto e coloco o resultado em um rótulo.

Eu, então, introduzo os valores das caixas de texto em uma variável (xbiz e xbder) e soço por exemplo eu recebo então este resultado: xbiz = 5,2 xbder = 2.3

Meu problema é quando uma das caixas de texto está vazia (em branco) o script me dá um erro de "ILLEGAL FLOAT VALUE!" Quer dizer, se eu não estou inserindo um valor em qualquer od as duas variáveis

Como pode resolver este problema?

Aqui está o meu código:

#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
    
por Dany 21.04.2014 / 20:57

1 resposta

1

Se xbiz ou xbder estiver vazio, bc irá reclamar (bash aqui)

$ echo "5.2 + " | bc -l
(standard_in) 2: syntax error

Você precisará de algo como (não testado)

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'
    
por 21.04.2014 / 21:48