有一个更好的方法来运行这个PHP?

时间:2016-10-18 20:58:36

标签: php floating-point

有另一种方法来运行这个数字生成器吗? 我想要所有的零。例如0.00000000000000000000000009949而不是9.949E-26

我的代码:

<?php
    ini_set('max_execution_time', 3000000000);
    $myfile = fopen("numbers.txt", "w") or die("Unable to open file!");
    for ($i = 0; $i <= 1; $i+= 0.000000000000000000000000000001) {
        $txt = $i.";";
        fwrite($myfile, $txt);
    }
    fclose($myfile);
?>

2 个答案:

答案 0 :(得分:1)

查看number_format

for ($i = 0; $i <= 1; $i += 0.000000000000000000000000000001) {
    $txt = number_format($i, 30) . ";";
    fwrite($myfile, $txt);
}

如果您愿意,这将为您提供所有零或更多。至少达到一定的精度,详见Wikipedia - IEEE floating point

答案 1 :(得分:0)

如果未达到PHP_MAX_INTEGER,您可以倒计时或向上,并从左侧添加到给定长度填充零和0.以创建字符串并防止逗号操作

喜欢"0.".str_pad($i,30-strlen($i),'0', STR_PAD_LEFT)."$i\n"