Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 05:08 09.06.24 
Компютри и Интернет
   >> PHP
*Кратък преглед

Тема Проблем с голямо число в променливанови  
Автор 5koto (непознат )
Публикувано08.02.07 13:37



$var1=1111111111111111;
$var2=1111111111111120;
$qty=(($var2-$var1)+1);
while($qty) {
echo str_pad($var1, 18, 0, str_pad_left);
$var1++;
$qty--;
}

резултат:
001111111111111111
1.1111111111111E+15
1.1111111111111E+15
1.1111111111111E+15
1.1111111111111E+15
1.1111111111111E+15
1.1111111111111E+15
1.1111111111111E+15
1.1111111111111E+15
1.1111111111111E+15

ако $var1 i $var2 са 11111111111 и съответно 11111111120 резултата е:
000000011111111111
000000011111111112
000000011111111113
000000011111111114
000000011111111115
000000011111111116
000000011111111117
000000011111111118
000000011111111119
000000011111111120

Как да избегна проблема с Е+15 и да получа цялото число?
/с round() не става/



Тема Re: Проблем с голямо число в променливанови [re: 5koto]  
Автор edembg (Ученик)
Публикувано08.02.07 14:36



Опитай това

echo str_pad(sprintf("%d", $var1), 18, 0, str_pad_left);

И най-ярките личности си плащат тока.


Тема Re: Проблем с голямо число в променливанови [re: edembg]  
Автор 5koto (непознат )
Публикувано08.02.07 14:52



Не помогна. Изплю това:

000000002147483647
0000000-2147483648
000000000000000000
000000000000000001
000000000000000002
000000000000000003
000000000000000004
000000000000000005
000000000000000006
000000000000000007



Тема Re: Проблем с голямо число в променливанови [re: 5koto]  
Автор ro6aviaМодератор (усер френдли)
Публикувано08.02.07 19:39



Както пише на сайта на РНР
http://bg2.php.net/integer

Целочислените числа са до 2147483647, а твоето определено прескача ;-)

И както пише тук : http://bg2.php.net/manual/en/language.types.string.php#language.types.string.casting
An integer or a floating point number (float) is converted to a string representing the number with its digits (including the exponent part for floating point numbers

Така че .... решението е в BCMath (http://bg2.php.net/bc)
$var1="1111111111111111";
$var2="1111111111111120";
$qty=$var2-$var1+1;

while($qty) {
echo str_pad($var1, 18, 0, str_pad_left)."
";
$var1 = bcadd($var1,1);
$qty--;
}

Резултата е :
001111111111111111
001111111111111112
001111111111111113
001111111111111114
001111111111111115
001111111111111116
001111111111111117
001111111111111118
001111111111111119
001111111111111120

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy

Редактирано от ro6avia на 08.02.07 19:40.



Тема Благодарсконови [re: ro6avia]  
Автор 5koto (непознат )
Публикувано09.02.07 11:36



Свърши работа и беше полезно.
Голям да порастнеш





Тема Re: Благодарско [re: 5koto]  
Автор ro6aviaМодератор (усер френдли)
Публикувано09.02.07 11:49



Ако порастна още малко ще надмина Прист Лодърдейл ;-)

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy


Тема Re: Благодарсконови [re: ro6avia]  
Автор 5koto (непознат )
Публикувано10.02.07 10:36



Не е задължително да е във физиологичен аспект. Може и в емоциаонален или финансов



Редактирано от 5koto на 10.02.07 10:36.




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.