PHPにてmicrotimeで秒数を測定した際「xxxxxE-5」のような値になる場合の対応方法
PHPで過去記事を参考の上、あるプログラムの処理にかかった時間を測定しようとしたところ「4.6968460083008E-5」のように数字の最後に「E-5」という見慣れない表記が付けたされて表示されていた。調べたところ指数表記という数の表記方法らしい。以下に解決方法をメモ。
指数表記とは
Wikipediaによると数の表記方法のひとつで非常に大きな数または非常に小さな数を表記する際に利用されるとのこと。
指数表記になった原因
今回の場合は表示する秒数が非常に小さかったため指数表記になったと思われる。
例えばだが以下を実行すると「1.0E-6」が表示される。
<?php $test = 0.000001; echo $test;
解決方法
ソースコード
#number_formatを使用するパターン
$test = 0.000001;
$test = number_format($test, 10);
echo $test; //0.0000010000
#sprintfを使用するパターン
$test = 0.000001;
$test = sprintf('%F', floatval($test));
echo $test; //0.000001
所感
エクセルでも桁数の多い数値を入力した場合「E+〇」みたいな表示に自動で変更されるがこれも同じ問題みたい。ちなみにエクセルだと「列のカラム部分(A列等)を右クリック→セルの書式変換→表示形式を標準から数値に変更」で解決できる。
関連記事
-
-
PHP Simple HTML DOM Parserを使用したスクレイピング方法
PHPでスクレイピングする際、preg_match_all等を用いて必要なデータ ...
-
-
PHPでBlowfishアルゴリズムを用いた暗号化と復号化方法
PHPでBlowfishアルゴリズムを用いてCBCモードで暗号化と復号化を行いた ...
-
-
PHPでXML形式データをオブジェクト・JSON・連想配列に変換する方法
先日バニラJavaScriptでXML形式データの取り扱いとJSON形式への変換 ...
-
-
PHPのswitch文で「>」「<」等、比較演算子の使用について
switch文は指定の変数が、特定の値もしくは文字列だった場合のみに使うようなも ...
-
-
PHPにて指定した期間内のランダムな日付をn件生成し、日付順にソートした上で受け取る方法
PHPにて指定した期間内のランダムな日付を指定した数だけ生成し、さらに日付順にソ ...