LINUX.ORG.RU

а в каком формате оно у тебя в PHP? float?

kiotoze ★★★★
()

почему он не может его вывести строкой?

забыдлокодь его делением на 100000000 и потом сделай str_replace точки

r0ck3r ★★★★★
()
Ответ на: комментарий от KRoN73

Это решение я оставил на самый последний случай, как то не охота целый модуль втыкать ради такой мелочи

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot
while (value)
{
   printf("%d", value % 10);
   value /= 10;
}

А такие три строчки кода в пхп написать нельзя? Обязательно тащить 100 метровые модули которые вдобавок не работают?

someoneelsenotme
()
Ответ на: комментарий от gobot

gmp_strval(76561198126346404);

http://php.net/manual/ru/function.gmp-strval.php

string gmp_strval ( GMP $gmpnumber [, int $base = 10 ] )

Параметр — не число (тем более, на котором PHP срубится), а объект.

Пример оттуда же:

$a = gmp_init("0x41682179fbf5");
printf("Десятичное: %s, 36-ричное: %s", gmp_strval($a), gmp_strval($a,36));

Т.е. тебе нужно:

$x = gmp_init("76561198126346404");
echo gmp_strval($x);
KRoN73 ★★★★★
()
Ответ на: комментарий от gobot

а нужно что строку?

http://php.net/manual/ru/function.gmp-init.php

Очевидно же, что если PHP теряет точность при парсинге большого числа, то числом нужно значение ты ввести не сможешь. Поэтому gmp принимает как числа (это когда небольшие), так и строки. Вот длинные числа только как строки и вводятся. Прочти же, наконец, документацию, она на русском и с примерами.

KRoN73 ★★★★★
()
Ответ на: комментарий от someoneelsenotme

А такие три строчки кода в пхп написать нельзя? Обязательно тащить 100 метровые модули которые вдобавок не работают?

Оп, а вот и недалёкие быдлокодеры подъехали.

ThisNameWasFree
()
Ответ на: комментарий от gobot

Прикольно, попробую завтра

Гомеопат, не?

Упаси вселенная от дураков, которые и дальше не допрут, что такое число тупо не влазит в int/uint на 32 или 64 бита. Но вы не останавливайтесь, продолжайте делить. А библиотеки для работы с большими числами созданы явно не для работы с большими числами, ага.

ThisNameWasFree
()
Последнее исправление: ThisNameWasFree (всего исправлений: 2)

Попробуй что то похожее.

<?php

$num = 765611980751982276784357464657656 * 765611980751982276783434765675645;
$numString = sprintf("%.0f", $num);

echo "$num = $numString\n";

Резултат (на 64бит):

5.8616170507097E+65 = 586161705070973659652271827694556459751684815854337700223210487808

PHPFan
()
Ответ на: комментарий от gobot
echo "765611980751982276784357464657656 * 656119807519822767834347656" | bc

5861617050709736802723308182332720665376411317757370126054336
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.