|
|
|
|
echo $f1=410157381000%2551443000;
|
выводит результат: 391963584
хотя должно вывести: 1926501000
Причём в ява-скрипт такой же операцией:
alert (410157381000%2551443000);
|
результат получается именно такой, как и ожидается: 1926501000
И как это всё можно объяснить? Вот так вот не перепроверишь, и вся работа насмарку... | |
|
|
|
|
|
|
|
для: coloboc66
(21.10.2008 в 09:50)
| | Вообще-то эта операция точно определена лишь для целых чисел.
А у Вас делимое в диапазон целых явно не попадает. | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 10:55)
| | Не понял: 410157381000 не является целым числом??? Может и так, но тогда экскурс в историю - а что называется целым числом? | |
|
|
|
|
|
|
|
для: coloboc66
(21.10.2008 в 11:02)
| | В 32-разрядном php целым числом называется оное в диапазоне [-2^31 .... 2^31-1]
т.е. от -2147483648 до 2147483647
А чтобы убедиться, достаточно поглядеть var_dump(410157381000) | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 11:20)
| | 1. Под знаком ^ понимается степень?
2. То есть РНР считает типом этого числа не int, a float ? | |
|
|
|
|
|
|
|
для: coloboc66
(21.10.2008 в 11:45)
| | >1. Под знаком ^ понимается степень?
В этой моей строке - да.
>2. То есть РНР считает типом этого числа не int, a float ?
Да. Потому что в формате float он может его представить хотя бы приближенно.
А в 4-байтовый int не запихнет никаким боком. | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 11:56)
| | Однако ява-скрипт кое-где поумнее РНР будет, раз такое дело... | |
|
|
|
|
|
|
|
для: coloboc66
(21.10.2008 в 12:08)
| | ничуть. Это зависит от реализации браузера.
Я видел браузеры, в JS которых int точно такой же 32-разрядный. | |
|
|
|