- ベストアンサー
テキストフィールドの小数点表示について
テキストフィールドに表示される数値の小数点以下をさせない方法はありますか? Math.floorなどを使うと問題があるのでテキストフィールドの表示だけを整数にしたいのです。 環境はFlashMXを使っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
切捨て、切り上げもダメであれば、Stringに変換して、文字に「.」が含まれていたらそこから削除、みたいな処理。 その次の桁を見て5以上だったら整数部分をNumに変換して1を足す、4以下だったらそのまま、みたいな処理を足せば完璧かと。
その他の回答 (2)
- umioyo
- ベストアンサー率66% (35/53)
あ、ごめんなさい、これだと小数点がない場合はresが文字列で返ってきちゃいますね。 必ず小数点が含まれるのであればいいのですが。。。
- umioyo
- ベストアンサー率66% (35/53)
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);
お礼
ありがとうございます。 これを応用して作品製作にいかしたいと思います。
お礼
すみません、文字に.が含まれていたらそこから削除するというコードが検索してみてもよくわかりませんでした。 具体的にどのようなコードを使えばいいのでしょうか? 質問ばかりで申し訳ないです。