.getRange()。getValues()がintを返すように強制する方法はありますか?私の範囲には数字しかありませんが、それは文字列として返しています。私はすべての私の文でparseIntを使うことや、変換された値を持つ別の配列を作ることを避けたいと思います。GoogleスプレッドシートスクリプトgetValues - 文字列の代わりにintを強制する
または、唯一の解決策は、配列を取得し、ループ内の配列全体をparseIntですか?
.getRange()。getValues()がintを返すように強制する方法はありますか?私の範囲には数字しかありませんが、それは文字列として返しています。私はすべての私の文でparseIntを使うことや、変換された値を持つ別の配列を作ることを避けたいと思います。GoogleスプレッドシートスクリプトgetValues - 文字列の代わりにintを強制する
または、唯一の解決策は、配列を取得し、ループ内の配列全体をparseIntですか?
あなたはparseInt()
または
例と
var A='12';var B=5
A+B = 125
parseInt(A)+B = 17
Number(A)+B = 17
は、でgetValues()は値がその中にいくつかのスペースやその他の非数値文字を持たない限り、文字列を返すことが想定されていない使用することができます...これらの値は手動で入力されているのか、何らかの機能の結果として出ていますか?
返信ありがとうございました – user1469541
空のセルは空文字列を返します。 – bmacnaughton
getValues()は、オブジェクトの2次元配列を返します。これらは、スプレッドシートのように書式設定されている文字列、整数または日付オブジェクトです。
スプレッドシートに戻って、整数値を持つセルの形式を確認してください。それらを整数としてフォーマットすると、整数を返すべきです。
次のように単項「+」演算子を使って簡単に行うことができます。
まずgetValue()
またはgetValues()
を使用してスプレッドシートからあなたの価値を得ます。そのような値が2つあり、A = 1
とB = 2
に格納するとします。文字列を連結する+
を除いて、数学バイナリ演算子を使用することで、それらを数値として認識させることができます。A - B = -1
、A + B
は '12'を返します。
文字列として解釈される可能性のある任意の変数を使用して、単精度演算子+
を使用するだけで、変数を数値にすることができます。たとえば、+A + +B
は3の正しい値を返します。
配列にparseInt()を実行し、情報を読み込んだ後に呼び出す関数を作成しました。これはうまくいきました(単純なループ)が、スプレッドシートを少し速くしたいので、1つの大きな配列を読み込み、別の1D配列として要素を保存することにしました。私がそれをしたとき、彼らの新しい家は正しく整数としてそれらを保存しました。それが問題を解決する別の方法です。 – user1469541