0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【GAS】スクリプトエディタ上で実行するJavascriptの扱う桁数が8桁以上になるときは注意!

Posted at

#問題点
 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)しなくてもちゃんと期待した結果が出てきましたので。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?