Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 20. 11. 2011, 19:29:20 · Upravil/a: Darker
Tohle není pravda:
1722323149466($x)%1303($y)= 366 Co s tím? Správně by za rovnítkem měla být 0. Je to tím že zadávám příliš velká čísla? Už je to podruhé co v PHP řeším problémy s dělitelností velkých čísel :( Problém jsem vyřešil tímhle: strpos((string)$zdroj/$zmateni,".")!=0 Ale radši bych matematiku řešil matematickými a ne textovými funkcemi. |
||
Majkl578 Profil |
#2 · Zasláno: 20. 11. 2011, 19:32:39
Darker:
„Je to tím že zadávám příloš velká čísla?“ Nejspíš, na 32-bitovém systému je to číslo vyšší než PHP_INT_MAX. na 64-bitovém to funguje správně. Můžeš zkusit použít rozšíření BCMath nebo GNU Multiple Precision. |
||
Darker Profil |
#3 · Zasláno: 20. 11. 2011, 21:53:23
Majkl578:
Mám windows7x64. Knihovny si pro tenhle případ nemohu dovolit. Je potřeba aby to bylo co nejkopatibilnější napříč servery. |
||
ShiraNai7 Profil |
#4 · Zasláno: 20. 11. 2011, 22:05:24 · Upravil/a: ShiraNai7
$x = (float)'1722323149466'; $y = (float)'1303'; var_dump(floor($x-floor($x/$y)*$y)); Výsledek: float(0) Zkusil jsem to na 32bit i 64bit "verzi PHP" a stejny vysledek. |
||
Majkl578 Profil |
#5 · Zasláno: 20. 11. 2011, 23:15:55
Darker:
„Knihovny si pro tenhle případ nemohu dovolit.“ Ani vestavěné? BCMath je součástí PHP už od verze 4. |
||
Darker Profil |
#6 · Zasláno: 21. 11. 2011, 10:42:05
Majkl578:
„BCMath je součástí PHP už od verze 4.“ Tak to jo :) |
||
Časová prodleva: 13 let
|
0