【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

FLASH8(Win-XP)使用者です。
関数設定がうまくいかないので教えてください。

function keisan (a , b) {
c = a + b;
return c;
}

などと設定した場合、a が 1 、 b が 1 の場合、c は 2ではなく11となってしまいます。
どうしたら2になってくれるでしょうか。
お詳しい方、よろしくお願いいたします。

A 回答 (4件)

よくわかりませんが,


#2の方の補足に書かれている内容から見て,
a や b を「テキスト入力」など,TextField から代入しようとされているのではないのでしょうか?

『加算と文字列連結は同じ記号「+」』
http://homepage3.nifty.com/ginga-b/MX/add_and_st …
 ---引用---
 ダイナミックテキスト、テキスト入力などの変数は必ず文字列となります。
 数値として使用する場合には、型変換の処理が必要になりますので
 注意が必要です(数値に型変換するにはNumber関数を使用します)。

解決方法はやはり,

function keisan(a, b) {
c = Number(a)+Number(b);
return c;
}


でしょう。
Number(a) の N は,正確には大文字ですよ。
    • good
    • 0
この回答へのお礼

そうなんです。テキスト入力です!
そうでしたか。テキスト入力は文字列扱いになっちゃうんですか。
勉強になりました。ありがとうございました。

お礼日時:2006/04/29 12:31

hensu1とhensu2にどのような値が入っているかは、プレビュー時に、「デバッグ」-「変数のリストアップ」で確認できます。


Numberはそうですね、大文字でした。失礼しました。

この回答への補足

あと、
a*1 + b*1
と書いて数字扱いにする手も思いつきましたがどうでしょうね?

補足日時:2006/04/29 12:46
    • good
    • 0
この回答へのお礼

なるほど。こういう確認方法もあるんですね。
ありがとうございました。

お礼日時:2006/04/29 12:36

元の値が宣言も含めて数字ではなく文字になってないですか?



どうしてもダメなら一度数字に変換して

function keisan (a , b) {
c = number(a) + number(b);
return c;
}
でどうでしょうか。
    • good
    • 0
この回答へのお礼

なるほど・・ ひょっとして関数keisan (a , b)の利用の仕方が悪いんですかね。以下のような使い方をしていますがこれが原因でしょうか?

on(release){
this.hensu3 = this._parent.keisan(this.hensu1 , this.hensu2);
}

お礼日時:2006/04/29 00:22

keisanの呼び出しを文字列で呼び出しているのでは?


今、
keisan("1","2");
としてないですか?

keisan(1,2);
で3が返ります。
    • good
    • 0
この回答へのお礼

もちろん「"」はつけてません。
おかしいですねえ・・

お礼日時:2006/04/28 11:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報