2012-06-20 27 views
9

.getRange()。getValues()がintを返すように強制する方法はありますか?私の範囲には数字しかありませんが、それは文字列として返しています。私はすべての私の文でparseIntを使うことや、変換された値を持つ別の配列を作ることを避けたいと思います。GoogleスプレッドシートスクリプトgetValues - 文字列の代わりにintを強制する

または、唯一の解決策は、配列を取得し、ループ内の配列全体をparseIntですか?

+0

配列にparseInt()を実行し、情報を読み込んだ後に呼び出す関数を作成しました。これはうまくいきました(単純なループ)が、スプレッドシートを少し速くしたいので、1つの大きな配列を読み込み、別の1D配列として要素を保存することにしました。私がそれをしたとき、彼らの新しい家は正しく整数としてそれらを保存しました。それが問題を解決する別の方法です。 – user1469541

答えて

13

あなたはparseInt()または​​

例と

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

は、でgetValues()は値がその中にいくつかのスペースやその他の非数値文字を持たない限り、文字列を返すことが想定されていない使用することができます...これらの値は手動で入力されているのか、何らかの機能の結果として出ていますか?

+0

返信ありがとうございました – user1469541

+0

空のセルは空文字列を返します。 – bmacnaughton

2

getValues()は、オブジェクトの2次元配列を返します。これらは、スプレッドシートのように書式設定されている文字列、整数または日付オブジェクトです。

スプレッドシートに戻って、整数値を持つセルの形式を確認してください。それらを整数としてフォーマットすると、整数を返すべきです。

17

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

まずgetValue()またはgetValues()を使用してスプレッドシートからあなたの価値を得ます。そのような値が2つあり、A = 1B = 2に格納するとします。文字列を連結する+を除いて、数学バイナリ演算子を使用することで、それらを数値として認識させることができます。A - B = -1A + Bは '12'を返します。

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

関連する問題