OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

整数が入力されたときに、小数点以下2桁まで表示させたいのですが

  • すぐに回答を!
  • 質問No.245188
  • 閲覧数1416
  • ありがとう数6
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 18% (10/53)

かなり未熟者で恐縮ですが、
たとえば表のセルに1と入力すると、1.00と表示させる
ようにするにはどうしたらよいでしょうか。
四捨五入とちがって、Web上の情報も乏しく、
困っております・・・。
どなたか、ご指導お願い申し上げます。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.7

こんにちは。
えっと、用途がイマイチわからないのですが、表のセル、というのはテーブルのセルの事ですか?

だとすると、以下は全く役に立たないんですが、フォームの場合でしたら↓で実現できます。

<html>
<head>
<title>小数点</title>
<script language="JavaScript"><!--
function checkNum()
{
n = document.checkFm.num.value;
n=n+"."
n = n.split(".")[0]+"."+(n.split(".")[1]+"00").substring(0,2);
document.checkFm.num.value = n;}
// --></script>
</head>
<body>
<form name="checkFm">
入力:<input type="text" name="num"><br>
<input type="button" onClick="checkNum()" value="チェック"><br>
</form>
</body>
</html>

※小数点以下は二桁に制限する事で実現してます。
 5.2358など、入れて、チェックボタンを押すと、5.23になります。
 5.2などの場合は、5.20になります。

もし、テーブルのセルに、HTMLの編集時に入れた数字を変化させるとすると、その動作遷移(そうすることで、HTML編集を簡略化したいのかな・・・とも思うのですが、それだとソースが重たくなるだけで、利点がなさそうに思えるのですが・・・)がわからないので、なんとも言えません(スミマセン)。
お礼コメント
sasatomo

お礼率 18% (10/53)

お答えいただき、どうもありがとうございました!
投稿日時 - 2002-04-03 09:43:36
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.2
レベル11

ベストアンサー率 48% (102/210)

100倍して四捨五入、文字列として下2桁を切り分け、小数点を介して 連結したらどうかと思ったのですが、右から数えるsliceを使ったら IEとNNで答えが変わってしまいました。で、左からだけ数えられる ように、Logで桁数を決めてみました。(私も未熟者、演習問題として挑戦) <html><body> <script language="JavaScri ...続きを読む
100倍して四捨五入、文字列として下2桁を切り分け、小数点を介して
連結したらどうかと思ったのですが、右から数えるsliceを使ったら
IEとNNで答えが変わってしまいました。で、左からだけ数えられる
ように、Logで桁数を決めてみました。(私も未熟者、演習問題として挑戦)

<html><body>
<script language="JavaScript">
myVal =100
myFig = Math.log(myVal) * Math.LOG10E +1;
myVal = Math.round(myVal*100);
myStr = new String(myVal);
myStr = myStr.substr(0,myFig) + "." + myStr.substr(myFig,2);
document.write(myStr);
</script></body></html>

最初は、Math.log()が常用対数のつもりで組んだら、myVal = 100で
とんでもない答えが・・・
myVal = 1 のテストだけで投稿しなくて良かった~!
補足コメント
sasatomo

お礼率 18% (10/53)

たびたびすみませんです。教えていただいたソースに関しての
質問なのですが、myFig = Math.log(myVal) * Math.LOG10E +1; と
いう記述と、myStr = myStr.substr(0,myFig) + "." + myStr.substr(myFig,2); という記述に関して、お伺いしてもいいでしょうか。
Figは、どんな言葉の略からきてるのでしょうか。ごめんなさい、
あほで・・。それと、なぜ抜き出す文字が、0文字目からmyFig文字目
までと、myFig文字目から2文字目までであるか、ということも理解
できておりません。よろしければ、教えてくださいませ。
投稿日時 - 2002-04-02 21:08:57
お礼コメント
sasatomo

お礼率 18% (10/53)

たびたびすみませんです。教えていただいたソースに関しての
質問なのですが、myFig = Math.log(myVal) * Math.LOG10E +1; と
いう記述と、myStr = myStr.substr(0,myFig) + "." + myStr.substr(myFig,2); という記述に関して、お伺いしてもいいでしょうか。
Figは、どんな言葉の略からきてるのでしょうか。ごめんなさい、
あほで・・。それと、なぜ抜き出す文字が、0文字目からmyFig文字目
までと、myFig文字目から2文字目までであるか、ということも理解
できておりません。よろしければ、教えてくださいませ。
投稿日時 - 2002-04-02 21:36:20


  • 回答No.1
レベル7

ベストアンサー率 19% (5/26)

該当セルを右クリックして、 <セルの書式設定>-<表示形式>から「数値」を選択。 「小数点以下の桁数」を2にすればできるはずです。
該当セルを右クリックして、
<セルの書式設定>-<表示形式>から「数値」を選択。
「小数点以下の桁数」を2にすればできるはずです。
  • 回答No.3
レベル11

ベストアンサー率 48% (102/210)

#2で myVal = 100 の行末セミコロン抜けてました。ごめんなさい。 あっ、エクセルの質問ではありませんよね? ...続きを読む
#2で myVal = 100 の行末セミコロン抜けてました。ごめんなさい。
あっ、エクセルの質問ではありませんよね?
お礼コメント
sasatomo

お礼率 18% (10/53)

本当にありがとうございました!おっしゃるとおり、
エクセルの質問ではないですよ(^^)
投稿日時 - 2002-04-02 09:53:28
  • 回答No.4
レベル7

ベストアンサー率 19% (5/26)

ごめんなさい。。。 カテゴリ見ないで質問内容でExcelだと思い込んでました。。。
ごめんなさい。。。
カテゴリ見ないで質問内容でExcelだと思い込んでました。。。
  • 回答No.5
レベル13

ベストアンサー率 50% (604/1207)

入力される数が整数なら、ただ単純に".00"を文字の最後に追加すればいいと思うのですが……
入力される数が整数なら、ただ単純に".00"を文字の最後に追加すればいいと思うのですが……
  • 回答No.6
レベル11

ベストアンサー率 48% (102/210)

このQ&Aをご覧になった達人には笑われそうですが・・・ 達人が添削?してくださるまで、未熟者どうしで頑張りましょうか! > Figは、どんな言葉の略からきてるのでしょうか。// 痛いところを突かれました。ketasuuでも良かったのですが、見栄を張って 桁数=figure から採りました。慣用表現があるのかどうか、存じません。 最近、myXxxxという変数名が良く使われる理由(うっかり ...続きを読む
このQ&Aをご覧になった達人には笑われそうですが・・・
達人が添削?してくださるまで、未熟者どうしで頑張りましょうか!

> Figは、どんな言葉の略からきてるのでしょうか。//
痛いところを突かれました。ketasuuでも良かったのですが、見栄を張って
桁数=figure から採りました。慣用表現があるのかどうか、存じません。
最近、myXxxxという変数名が良く使われる理由(うっかり予約語に触れたり、
methodと交錯しないように)を聞きかじって、使ってみたかったんです。

myValの常用対数(全角のlogで下付10を省略して書きます)を採れば、
log1==0、log10==1、log100==2・・・ですね。Math.log() は
自然対数なので、常用対数に換算するために LOG10E(==0.43429...)を掛け、
さらに1を足して、100倍する前のmyValの整数部分の桁数としました。例えば、
元の数が 800 なら myFig==3.903... となるはずです。substr() の引数としては
==3 として働いてくれる(切り捨て)みたいですが、floor() で明示的に
切り捨てるのが安心でしょうかねぇ??

> なぜ抜き出す文字が、0文字目からmyFig文字目//
myFig は 100倍する前のmyValの整数部分の桁数ですから、100倍後に
文字列化した myStr の「最初の文字」から「myFig文字分」までが、
元の数字の整数部分です。

> myFig文字目から2文字目までであるか//
100倍する前に3桁 (myFig==3) なら、文字列化したmyStrの4文字目以降が元の数の
少数部分ですが、substr(m,n) の m は [0]から数える(最初の文字は m==0)ので、
m==3 が少数第1位となり、そこから2文字を採ると元の数の少数2桁分です。

もっとスマートな方法があるかもしれませんが、理解した範囲の「力ずく」です。
お礼コメント
sasatomo

お礼率 18% (10/53)

詳しくご説明いただいて、どうもありがとうございます!
投稿日時 - 2002-04-03 09:42:11
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ