1

Googleスプレッドシートにクエリを実行していますが、取得した数値によって、コードのさらに下で行っている重みが大きくなっています。

私の質問:

function queryValue3(met1,met2,met3) {
var query3 = new google.visualization.Query('https://spreadsheets.google.com/spreadsheet/tq?range=B7:B9&key=my_key&gid=10');
query3.send(function (response) {
    if (response.isError()) {
        alert('Error in query3: ' + response.getMessage() + ' ' + response.getDetailedMessage());
        return;
    }

    var data3 = response.getDataTable();

    var m1 = data3.getValue(0, 0);
    var m2 = data3.getValue(1, 0);
    var m3 = data3.getValue(2, 0);

私がm2のために引っ張っている数は、明らかに25.3333333333333323であり、関数の後半で私を爆破しています。私の数値が10番目または100番目(この場合は10番目が必要)に丸められている限り、関数は正常に機能します。カスタムラウンド(小数点以下第1位)を使用していますが、シートでは正しいように見えますが、クエリは生の数値を取得していますか?ほとんどの場合、私の数は整数であり、そのような場合は小数を含めないようにします。この場合、誰かが変数m1、m2、およびm3を変更するのを手伝ってもらえますか?

ありがとう...

4

1 に答える 1

8

があるn.toFixed(2);

これを使用して、小数点以下の数値の量を設定できます。

例:

foo = 25.3333333333;
foo = +foo.toFixed(2); 
// The plus makes it a number-type again, as toFixed converts to string.
console.log(foo); // 25.33

編集:予想される副作用として、小数の丸めが発生します。

foo = 25.127;
foo = +foo.toFixed(2); 
console.log(foo); // 25.13

整数は同じままです:

foo = 23;
foo = +foo.toFixed(2);
console.log(foo); // 23
于 2013-03-26T22:02:40.797 に答える