11

.getRange().getValues() に int を返すように強制する方法はありますか? 私の範囲には数字しかありませんが、それらを文字列として返しています。すべてのステートメントで parseInt を使用したり、変換された値で別の配列を作成したりすることは避けたいと思います。

それとも、配列を取得してからループ内の配列全体を parseInt することが唯一の解決策ですか?

4

3 に答える 3

18

次のように単項「+」演算子を使用すると、これを簡単に行うことができます。

まず、getValue()またはを使用してスプレッドシートから値を取得しますgetValues()。そのような値を 2 つ取得し、それらを と に格納するA = 1としB = 2ます。+文字列を連結するを除く任意の算術二項演算子を使用して、数値として認識させることができます。そのためA - B = -1、 whileA + Bは「12」を返します。

+文字列として解釈される可能性のある変数に単項演算子を使用するだけで、変数を強制的に数値にすることができます。たとえば+A + +B、正しい値 3 を返します。

于 2012-12-03T18:59:29.890 に答える
13

parseInt() または使用できますNumber()

var A='12';var B=5
A+B = 125
parseInt(A)+B = 17
Number(A)+B = 17

つまり、値にスペースやその他の非数値文字が含まれていない限り、 getValues() は文字列を返すことは想定されていません...これらの値は手動で入力されたものですか、それとも関数の結果として得られたものですか?

于 2012-06-20T22:01:54.247 に答える
2

getValues() は、オブジェクトの 2D 配列を返します。つまり、これらは、スプレッドシートでフォーマットされているものに応じて、文字列、整数、または日付オブジェクトになります。

スプレッドシートに戻り、整数値を持つセルがどのようにフォーマットされているかを確認します。それらを整数としてフォーマットすると、整数が返されます。

于 2012-06-21T04:41:48.477 に答える