#問題点
8桁以上の数値は変てこりんな結果になる
function test() {
var num1 = 9999999;
var num2 = 10000000;
Logger.log(num1);
Logger.log(num2);
}
結果
[18-02-25 07:45:29:530 PST] 9999999.0
[18-02-25 07:45:29:530 PST] 1.0E7
9999999までは大丈夫ですが、10000000と8桁になった途端、「あれ?」っとなります。10000000のはずが「1.0E7」って?以前からJSは日付と数値は扱いにくいな−とは思っていましたが。
解決策
いろいろ調べたのですがtoString(10)として10進数に変換すればOKでした。
function test() {
var num = 10000000;
Logger.log(num.toString(10));
}
結果
[18-02-26 00:56:15:483 JST] 10000000
今までスクリプトエディタ上のJS上で8桁以上の数字を計算する機会がなかったので気付きませんでした。たいていシート上や外部から結果を取得して簡単な処理しかやらせていなかったので。これはスクリプトエディタに問題があるのかもしれませんね。メモ帳などでJavascript書いてテストしたらtoString(10)しなくてもちゃんと期待した結果が出てきましたので。