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

どなたか助けて下さい!!

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

お礼率 100% (4/4)

はじめまして、con999といいます。
javascriptにカンマを入れる方法を教えて頂きたいのです。
実は私はある会社の営業をしているのですが、昔(5年程前)にホームページの制作会社に勤めていたことが有るんですが、それを知っているお得意先のホテルのおえらいさんから、ホームページ上で動く見積書を作ってくれと頼まれたんですが、断ることもできずに
引き受けたんですが・・・
計算はできるんですが、計算した数値にカンマを入れることができないのです。
頼りにしていた昔の同僚にも色々教えてもらったんですが、わからないんです。

もしよければ、一度このアドレスのjavascriptを見て
どうのようにしたら良いかアドバイス頂けませんでしょうか。どうかよろしくお願い致します。

http://hccweb1.bai.ne.jp/~hde15601/keisan/index.html
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル8

ベストアンサー率 18% (11/58)

文字列編集で通貨のカンマを入れるしかないと思います。 正規化表現が使える場合のサンプルを添付しました。 使えない場合は、文字列編集をコーディングでもいいかと思います。 function kval(n) { var result; var str = "" + n; var abc; if(!(abc = str.match(/^([\+-] ...続きを読む
文字列編集で通貨のカンマを入れるしかないと思います。
正規化表現が使える場合のサンプルを添付しました。
使えない場合は、文字列編集をコーディングでもいいかと思います。
function kval(n) {
var result;
var str = "" + n;
var abc;
if(!(abc = str.match(/^([\+-]|)(\d+)(\.\d+|)$/)))
return "";
var int_data = abc[2];
var len = int_data.length;
var mod = (len - 1) % 3 + 1;
result = int_data.substr(0, mod);
for(var i = mod; i < len; i += 3)
result += "," + int_data.substr(i, 3);
result = abc[1] + result + abc[3];
return result;
}
お礼コメント
con999

お礼率 100% (4/4)

私が書き込んで直ぐに回答頂き有り難うございました。
まだ解らない所も有りますが、自分で色々やってみます。アドバイス頂き本当に有り難うございました。
また解らないことが有れば質問させて頂きますので、よろしくお願い致します。
投稿日時 - 2001-08-25 01:33:59


  • 回答No.2
レベル5

ベストアンサー率 100% (1/1)

 面白そうなので、僕も考えてみました。 関数名は、No.1の方と同じとします。 参考までに・・・。 function kval(ex1){ if (isNaN(ex1)) return ex1; var ex2 = ex1; var ex3 = ""; for (ex2 = ex1; 1000 <= ex2; ex2 = (ex2 - ex2 % 1000) / ...続きを読む
 面白そうなので、僕も考えてみました。
関数名は、No.1の方と同じとします。
参考までに・・・。

function kval(ex1){
if (isNaN(ex1)) return ex1;
var ex2 = ex1;
var ex3 = "";
for (ex2 = ex1; 1000 <= ex2; ex2 = (ex2 - ex2 % 1000) / 1000){
var ex4 = ex2 % 1000;
var ex5 = (ex4 < 100) ? ",0" : ",";
if (ex4 < 10) ex5 += "0";
ex3 = ex5 + ex4 + ex3;
}
return ex2 + ex3;
}
お礼コメント
con999

お礼率 100% (4/4)

お礼が遅くなり申し訳有りませんでした。
アドバイス頂き大変有り難うございました。
教えて頂いた用にやってみます。
また解らなければ、質問させて頂きます。
投稿日時 - 2001-08-25 01:31:27
  • 回答No.3
レベル12

ベストアンサー率 75% (398/526)

シンプルに、文字列編集を行うサンプルを書いてみました。 受け取った数値を文字列化し、下から順に、3文字コピーしたらカンマを入れる、の繰り返しでOKです。 function kval(num) {   var str = "" + num;   var ret = "";   for (var i = 0; i < str.length; i++) ...続きを読む
シンプルに、文字列編集を行うサンプルを書いてみました。
受け取った数値を文字列化し、下から順に、3文字コピーしたらカンマを入れる、の繰り返しでOKです。

function kval(num) {
  var str = "" + num;
  var ret = "";
  for (var i = 0; i < str.length; i++) {
    ret = str.charAt(str.length - 1 - i) + ret;
    if ((i % 3 == 2) && (i + 1 < str.length)) { ret = "," + ret; }
  }
  return ret;
}

「3回に1回~」の条件文にもう1つ条件をつけていますが、これは「まだコピーする文字があるなら」というもので、数値の桁数が3の倍数の場合に、頭がカンマで始まる文字列を返してしまうのを防ぎます。
お礼コメント
con999

お礼率 100% (4/4)

アドバイス頂き有り難うございます。
カンマを入れるやり方が色々あってびっくりしました。
丁寧に御説明頂き本当にありがとうございました。
投稿日時 - 2001-08-25 17:59:54
  • 回答No.4
レベル5

ベストアンサー率 100% (1/1)

 No.2の者です。前回のは、あまりスマートでなかったので、書き直しました。 //------ function kval(ex1){ if (isNaN(ex1)) return "NaN"; ex1 = (ex1 < 0) ? 0 : Math.floor(ex1); for (var ex2 = ""; 1000 <= ex1; ex1 ...続きを読む
 No.2の者です。前回のは、あまりスマートでなかったので、書き直しました。
//------
function kval(ex1){
if (isNaN(ex1)) return "NaN";
ex1 = (ex1 < 0) ? 0 : Math.floor(ex1);
for (var ex2 = ""; 1000 <= ex1; ex1 = Math.floor(ex1 / 1000)){
var ex3 = ex1 % 1000;
ex2 = "," + ((ex3 < 100) ? 0 : "") + ((ex3 < 10) ? 0 : "") + ex3 + ex2;
}
return ex1 + ex2;
}
//------
 金額表示と言うことで、文字列が渡されると"NaN"を返します。
また、負の数はゼロになり、小数点以下は切り捨てです。
関数に渡されるのが自然数と決まっているなら、こういった処理はムダなので、
関数は、いきなりforから始めてしまいましょう。
========
 それから。調べてみると、参考URLにあるような方法もあり、JScriptにすると、
//------
function kval(ex1){
ex1 = ex1.toString(10);
var ex2 = /^([-+]?\d+)(\d\d\d)/;
while(ex1.match(ex2)) ex1 = ex1.replace(ex2,"$1,$2");
return ex1;
}
//------
と書けました。やはり、文字列で処理してしまうのがスマートなのかな・・・。
お礼コメント
con999

お礼率 100% (4/4)

2回もご解答頂き本当に有り難うございます。
しかも色々調べて下さって本当にすみません。

皆さんに色々アドバイスを頂いてるのにも関わらず、上手くできないので非常に恥ずかしいのですが・・・

また解らないことがあれば補足に書き込ませて頂きますので、よろしくお願い致します。

本当に有り難うございました。
投稿日時 - 2001-08-28 00:15:26
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


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

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ