|
|
|
| Код
$time_mks = 1234567890123456789012345;
$time_mks = sprintf("%.0f", $time_mks);
echo "<br>", $time_mks, "<br>";
| выводит в броузере такой странный результат:
1234567890123456824475648
|
| |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 19:30)
| | Дело в том, что такие большие числа хранятся не в целочисленной переменной и не в строке, а в числе с плавающей точкой, значение которого всегда вычисляется приблизительно. Если вам требуется точные значения для гиганских чисел придется оперировать строками и спец-расширением PHP для работы с числами в строках. | |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 19:30)
| | var_dump($time_mks); после первой строки. | |
|
|
|
|
|
|
|
для: Trianon
(13.02.2009 в 19:48)
| | Код:
$time_mks = 1234567890123456789012345;
var_dump($time_mks);
$time_mks = sprintf("%.0f", $time_mks);
echo "<br>", $time_mks, "<br>";
|
Результат исполнения:
float(1.23456789012E+24)
1234567890123456824475648
|
| |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 19:56)
| | >Результат исполнения:
>
float(1.23456789012E+24)
>1234567890123456824475648
|
Ну ведь равны?
Ту же мысль Игорь Вячеславович разжевали с присущим им политесом во всех подробностях.
Пищи для ума не оставив. | |
|
|
|
|
|
|
|
для: Trianon
(13.02.2009 в 20:00)
| | Что то я не врубаюсь...
Задано 1234567890123456789012345
Выдано 1234567890123456824475648
Это равенство? | |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 20:06)
| | 17 десятичных цифр - приблизительна точность вещественных чисел в php
Чему Вы удивляетесь? | |
|
|
|
|
|
|
|
для: Trianon
(13.02.2009 в 20:09)
| | Я привык считать, что рнр столь могуч, что может всё...
А повысить эту точность нет возможности? | |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 20:19)
| | а что вы такое считаете, что Вам нужна такая невъе... брутальная точность?
расширения bc и gmp могут повысить до .... и выше.
но зачем? | |
|
|
|
|
|
|
|
для: Trianon
(13.02.2009 в 20:32)
| | Это у меня идентификатор. Он не вычисляется, а задается, и хотелось бы сохранить в целости его 20 разрядов. Если это возможно без особых сложностей. Куда это bc впиявить? | |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 20:36)
| | Фигасе, идентификатор ) | |
|
|
|
|
|
|
|
для: ddhvvn
(13.02.2009 в 20:38)
| | Ну нравятся человеку крупные вещи, что тут поделать... :) | |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 20:36)
| | если это идентификатор, и он не вычисляется, держите его в виде текста. | |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 20:36)
| | Хотелось спросить, это интендификатор чего, и как он образуется? | |
|
|
|
|
|
|
|
для: AcidTrash
(13.02.2009 в 20:52)
| | Это идентифкатор строки для базы. Я получаю его так:
list($usec, $sec) = explode(" ", microtime());
$time_mks = ($sec + $usec)*1000000 ;
|
Может, нужно
list($usec, $sec) = explode(" ", microtime());
$time_mks = gmp_init (($sec + $usec)*1000000) ;
|
Так будет лучше?
==================
(С Трианоном согласен - строка решает проблемы. Но хочется понять и числовой способ). | |
|
|
|
|
|
|
|
для: Владимир55
(13.02.2009 в 21:11)
| | Это идентифкатор строки для базы
Не проще воспользоваться интендификатором именно базы по полю например id, с increment? | |
|
|
|