1

元の小数点以下の数を数値で表示する js 関数が必要です。例えば:

value          display
2.31             2
1.0              1
2.3500           4

問題は、小数の数を取得する方法がわからないことです。私はそのコードを持っています: value=2.3500; CountofDecimals(値) を返します。// ディスプレイ 4 でなければなりません:

何か助けて??? ありがとう:P

4

4 に答える 4

4

それは可能ではありません。3.5数値と3.50JavaScript やその他の一般的なプログラミング言語との間に違いはありません。

実際にそれらが文字列であることを意味する場合 (value = '2.3500'ではなくvalue = 2.3500)、次を使用できますindexOf

var decimalPlaces = value.length - value.indexOf('.') - 1;
于 2012-07-24T17:05:44.747 に答える
1

警告: 私はこの答えが大嫌いです。

数値として保存するのではなく、文字列として保存してください。これにより、「stringly typed」コードがすぐに作成される可能性があるため、お勧めできません。JavaScript は数値型として float を使用するため、これは回避策です。

または、オブジェクトとして保存し、関数呼び出しを介して形式を解析します。

{ value = "1.2345", decimal = 4} 

それを使用して正しい数値形式を作成します。要件があれば、これはおそらく私が使用するハックです。または、サーバー側で簡単に引き出せるように、サーバーにフォーマットされた文字列を返すようにします。

于 2012-07-24T17:12:38.533 に答える
1

これらの数値を文字列として取得できる場合、それは間違いなく可能です..そして実際には非常に簡単です。

function countDecimals(string){
   var delimiters = [",","."];
   for(var i = 0; i<delimiters.length; i++){

        if(string.indexOf(delimiters[i])==-1) continue;
        else{
        return string.substring(string.indexOf(delimiters[i])+1).length;
    }
 }
}
于 2012-07-24T17:16:24.347 に答える
0

この関数を使用できます:

function decimalplaces(number)
{
    numberastring = number.toString(10);
    decimalpoint = numberastring.indexOf(".");

    if(decimalpoint == -1)
    {
       return 0;
    }
    else
    {
        return numberastring.length - decimalpoint - 1;
    }
}
于 2012-07-24T17:57:12.500 に答える