duch4ever
2.06.2012, 19:06:06
Witam, sam nie wiem jaki powinien być temat.
Mam kod EAN13, czyli 13 cyforwy kod produktu w takiej formie "5.90115742179E+12" (tak go zwraca pewien program).
Jak to zamienić na porawny kod czyli w tym wypdaku "5901157421791" ?
maly_swd
2.06.2012, 20:58:59
Musze Cie zmartwic poniewaz 5.90115742179E+12 to nie 5901157421791 a 5901157421790
Wiec albo zmien program, ktory Ci zwraca taki EAN13 bo taka liczba nie jest poprawnym kodem EAN.
Taki zapis powstaje 5.90115742179E+12 gdy jest przekroczenie dozwolonego zakresu, i wtedy jest on zaokraglany aby uzyskac przyblizony wynik
5.90115742179E+12 to dokladnie 5.90115742179*10^12
Ps. Co to za program Ci taka wartosc zwraca?
Xorlgen
4.06.2012, 08:07:11
Jeżeli zwraca Ci to kompilator php, to sprawdź config, masz tam możliwość zmiany maksymalnej długośći liczby... Nie mówił o tym przedmówca, więc dorzucam swoje 3 grosze : >. Pozdro.
Puszy
4.06.2012, 10:13:42
Również pracuję z EANami i taki format (postać wykładnicza) zaobserwowałem tylko w Excelu. Jeżeli dane wyciągasz z pliku .xlsx albo .csv i jesteś w stanie go edytować ręcznie to obrób go w Excelu. Jeżeli taką liczbę zwraca Ci PHP, JS czy też Java itd. to bardzo dziwne.
maly_swd
4.06.2012, 11:02:20
Z tego co pamietam (moge sie mylic), to jesi system jest 32bit to liczby w PHP sa chyba 32bitowe.
Excel moze faktycznie pokazywc takie liczby, wiec mozna kolumne zamienic na TEXTowa i powinno pokazywac dobrze (o ile dane w pliku zrodlowym sa poprawne).
Puszy
4.06.2012, 12:00:33
Zrobiłem mały test PHP
Windows XP SP3 32bit
PHP 5.3.8
<?php
$f = 1234567891234;
?>
zwraca mi:
float(1234567891234)
Także PHP nie ma problemu z 13 cyframi w liczbie, fajnie by było gdyby autor postu podał źródło danych, jeżeli może.
edit:
Gorzej gdy EAN zaczyna się od zera.
<?php
$f = 0123456789123;
?>
zwraca:
int(342391)
duch4ever
4.06.2012, 12:31:49
Mam cennik hurtowni gdzie jest EAN13 i kiedy chcę z niego wyciągnąć dane zwraca mi właśnie takie coś, testowałem w PHP na
http://code.google.com/p/php-excel-reader/.
Można coś z tym zrobić?
redeemer
4.06.2012, 14:19:35
Cytat(Puszy @ 4.06.2012, 13:00:33 )

Gorzej gdy EAN zaczyna się od zera.
Gdy liczba zaczyna się od zera, jest traktowana jako liczba w systemie ósemkowym (http://www.php.net/manual/pl/language.types.integer.php).
duch4ever
4.06.2012, 14:34:34
Te liczby nie zaczynają się od zera, korzystam z systemu x64 (windows 7). Można to jakoś przekonwertować?
maly_swd
4.06.2012, 14:42:35
duch4ever
5.06.2012, 14:11:30
Niestety zmiany tupu na TEXT w Excellu nie pomogła, mimo że w dokumencie jest ok po sparsowaniu już nie.
Sporo się nakombinowałem i dalej nie wiem dlaczego tak się dzieje.
Dzięki wszystkim za pomoc.
maly_swd
6.06.2012, 14:39:00
Jak mozesz to daj kawalek wygenerowanego pliku EXCELA z tym EAN (ale nie otwieraj go sam w excelu i nie modyfikuj). To moze da sie jakos Ci pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.