2017-11-14 7 views
1

Googleスプレッドシートエディタを使用して、小数点以下の桁数の数値文字列の書式設定に役立つカスタム関数を作成しようとしています。データがチャート化できるように、文字列を数値型にする必要があります。Googleスプレッドシートのスクリプト小数点の配置書式

この関数が必要なのは、セル内で小数点以下の桁数が異なるさまざまな数値のセットを表示するセル内ドロップダウンがあるためです。したがって、私はシート内の静的な数値書式設定に依存することはできません。

これは私がしたい小数点以下の桁数を返しますが...

function format(amt) { return amt.toFixed(2); } 

toFixed()は、したがって、値はチャート作成のために使用することができない、テキスト文字列を作成します(グラフには、「データなし」と言うだろう) 。

私は、次の選択肢を試してみました...

return parseFloat(amt); // var = number; can chart but cannot control decimal places 
return parseFloat(amt).toFixed(2); //var = string; cannot chart 
return parseInt(amt).toFixed(2); //var = string; cannot chart 

誰としてそれをkeepignながら、私は私がしたい小数点以下の桁数を制御することができますカスタム関数を作成する方法があるなら、私に知らせることができます数字列?

答えて

0
function format(x, n){ 
    x = parseFloat(x); 
    n = n || 2; 
    return parseFloat(x.toFixed(n)) 
} 

基本的には、toFixed()メソッドが呼び出された後に値を解析する必要がありますが、toFixed()メソッドが呼び出される前に、あなたはそれを解析しています。上記機能付き

あなたは

+0

ありがとうn小数点以下を得るためにformat(2, n)を小数点以下2桁を取得、またはするformat(amt)を言うことができます!私はちょうどこれをテストし、これはほとんどの時間で動作します。 x = 0.30の場合、0.30ではなく0.3と表示されます。 "n"の後ろにゼロを残すためにとにかくありますか? –

+0

文字列に変換せずに可能ではないとは思わない –

+0

数字を格納し、表示する列に文字列を表示するだけで、非表示の列を作成する必要があります。もう一度あなたの助けをありがとう! –

関連する問題