読者です 読者をやめる 読者になる 読者になる

小さな数字が勝手に科学表記に

PHPで非常に小さな数字を文字列に変換すると科学表記になっちゃいます。

$ php -r '$i=0.00001;print "$i\n";'
1.0E-5


printしたり、

$ php -r 'print 0.00001;'
1.0E-5

ファイル出力したり。

$ php -r 'file_put_contents("a.txt", 0.00001);'
$ cat a.txt 
1.0E-5


前にこれが原因でちょっとハマりました。
変換されたくない場合はprintf、sprintfを使いましょう。

$ php -r 'printf("%f", 0.00001);'
0.000010
$ php -r 'file_put_contents("a.txt", sprintf("%f",0.00001));'
$ cat a.txt 
0.000010