[リストへもどる]
一括表示
タイトルLET文について
記事No2429
投稿日: 2007/10/26(Fri) 14:20
投稿者長谷川 三島市
もうベテランの方々には周知の事実かも
知れませんが、お知らせさせて下さい。

V30(分母)には"0",V29(分子)には"397"が入っていて,

LET Z1=ROUND(VAL(V29)*100/VAL(V30),0,0);

を実行したその結果Z1には"0"が入らず、その直前で計算
した値が残っていました。"0"が入るとばかり思って
いたので原因を追及するのに大変でした。

式の前に LET Z1=0; を入れました。目論んだ通り
"0"の値を得られました。

長谷川

タイトルRe: LET文について
記事No2430
投稿日: 2007/10/28(Sun) 15:06
投稿者柏木@CA
参照先http://ww.pips.gr.jp
長谷川さん

> 式の前に LET Z1=0; を入れました。

これって

> その直前で計算
> した値が残っていました。"0"が入るとばかり思って
> いたので原因を追及するのに大変でした。

直前に「計算」するのと同じになりませんか。

> LET Z1=ROUND(VAL(V29)*100/VAL(V30),0,0);
> を実行した

結果の"0"か、LET Z1=0の結果の"0"なのか、不明ですね。

柏木@CA

タイトルRe: LET文について
記事No2431
投稿日: 2007/10/28(Sun) 22:32
投稿者入川@松戸
長谷川さん

> V30(分母)には"0",V29(分子)には"397"が入っていて,
>
> LET Z1=ROUND(VAL(V29)*100/VAL(V30),0,0);
>
> を実行したその結果Z1には"0"が入らず、その直前で計算
> した値が残っていました。"0"が入るとばかり思って
> いたので原因を追及するのに大変でした。
>
> 式の前に LET Z1=0; を入れました。目論んだ通り
> "0"の値を得られました。

 LET文では、除数が0の時は計算しません。(Z変数の値は変わらないということです)
 ですから、ここでは、式の前に定義した LET Z1=0; がそのまま残っています。

 LET文で計算させる場合は予め除数が0かどうかチェックして、0の時は別ルーチンに飛ばす必要があります。

 指令‘CAL’の場合は除数が0の場合、結果は‘********’になりますね。
 

タイトルRe^2: LET文について
記事No2434
投稿日: 2007/10/30(Tue) 08:55
投稿者長谷川 三島市
入川様

ご回答ありがとうございます。

大変重要なことをお聞きしました。
これから割り算を使っているオートを全て見直します。
とりあえずは、答えの入る変数に予め、
"0"をLETしようと思います。

ありがとうございました。

> 長谷川さん
>
> > V30(分母)には"0",V29(分子)には"397"が入っていて,
> >
> > LET Z1=ROUND(VAL(V29)*100/VAL(V30),0,0);
> >
> > を実行したその結果Z1には"0"が入らず、その直前で計算
> > した値が残っていました。"0"が入るとばかり思って
> > いたので原因を追及するのに大変でした。
> >
> > 式の前に LET Z1=0; を入れました。目論んだ通り
> > "0"の値を得られました。
>
>  LET文では、除数が0の時は計算しません。(Z変数の値は変わらないということです)
>  ですから、ここでは、式の前に定義した LET Z1=0; がそのまま残っています。
>
>  LET文で計算させる場合は予め除数が0かどうかチェックして、0の時は別ルーチンに飛ばす必要があります。
>
>  指令‘CAL’の場合は除数が0の場合、結果は‘********’になりますね。
>