2016-10-18 3 views
0

Есть ли другой способ запустить этот генератор чисел? Я хочу все нули. для exampe 0.00000000000000000000000009949 вместо 9.949E-26есть лучший способ запустить этот php?

моего код:

<?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); 
?> 
+0

Почему бы лучше не использовать 'str_repeat()' или 'str_pad()' или 'str_fill()' для генерации нулей? – JOUM

+0

Я отредактировал сообщение. Я хочу сгенерировать все числа от 0 до 1, увеличивая на 1E-30 –

+0

Вы должны прочитать математику с плавающей запятой. В частности, это не всегда так, что 1 + 0,000000001 = 1.000000001 –

ответ

1

Посмотрите на number_format

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

Это даст вам все нули или даже больше, если хотите. По крайней мере, до некоторой степени, см. Wikipedia - IEEE floating point.

+0

это сработало. Спасибо. –

0

если PHP_MAX_INTEGER не достигнут, вы можете рассчитывать вниз или вверх и добавить слева заданную длиной заполнения нулей и 0. для создания строки и предотвращение запятой операции

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

Смежные вопросы