• ベストアンサー

テキストフィールドの小数点表示について

テキストフィールドに表示される数値の小数点以下をさせない方法はありますか? Math.floorなどを使うと問題があるのでテキストフィールドの表示だけを整数にしたいのです。 環境はFlashMXを使っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • umioyo
  • ベストアンサー率66% (35/53)
回答No.1

切捨て、切り上げもダメであれば、Stringに変換して、文字に「.」が含まれていたらそこから削除、みたいな処理。 その次の桁を見て5以上だったら整数部分をNumに変換して1を足す、4以下だったらそのまま、みたいな処理を足せば完璧かと。

alice047
質問者

お礼

すみません、文字に.が含まれていたらそこから削除するというコードが検索してみてもよくわかりませんでした。 具体的にどのようなコードを使えばいいのでしょうか? 質問ばかりで申し訳ないです。

その他の回答 (2)

  • umioyo
  • ベストアンサー率66% (35/53)
回答No.3

あ、ごめんなさい、これだと小数点がない場合はresが文字列で返ってきちゃいますね。 必ず小数点が含まれるのであればいいのですが。。。

  • umioyo
  • ベストアンサー率66% (35/53)
回答No.2

var num=31.89999; //元となる小数点を含む数 var j=0; //小数点を含んだか含んでいないかのフラグ用 var res=""; //結果格納用変数 num=String(num); //数字を文字列に変換。そのままだとlengthとかが使えないため num_len=num.length; //何文字あるか数えてnum_lenに格納 for(i=0; i<num_len;i++){ //一文字ずつ調べるためのfor文 if(num.charAt(i)=="."){ //文字に小数点を含んでいる場合 j++; //変数jに加算 }else{ //文字に小数点が含まれていなかった場合 if(j){ //もし変数jが加算されていたあと(小数点1桁目)ならば if(Number(num.charAt(i)) > 4){ //その数が5以上の場合は res=Number(res)+1; //結果を数値に変換して1を足す } break; //小数点2桁以降も処理されてしまうので、小数点以下の処理は1桁目で終了 }else{ //もし小数点がまだ出てきていないのであれば、 res=res+num.charAt(i); //上の桁から順に文字列として足していく } } } trace(res);

参考URL:
http://www.game3rd.com/flash/action/string.htm
alice047
質問者

お礼

ありがとうございます。 これを応用して作品製作にいかしたいと思います。

関連するQ&A