Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Konwersja stringa do float
duch4ever
post 2.06.2012, 19:06:06
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 22.06.2010

Ostrzeżenie: (0%)
-----


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" ?
Go to the top of the page
+Quote Post
maly_swd
post 2.06.2012, 20:58:59
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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?


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Xorlgen
post 4.06.2012, 08:07:11
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.05.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Puszy
post 4.06.2012, 10:13:42
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
maly_swd
post 4.06.2012, 11:02:20
Post #5





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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).




--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Puszy
post 4.06.2012, 12:00:33
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


Zrobiłem mały test PHP

Windows XP SP3 32bit
PHP 5.3.8

  1. <?php
  2. $f = 1234567891234;
  3. ?>


zwraca mi:

  1. 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.

  1. <?php
  2. $f = 0123456789123;
  3. ?>


zwraca:

  1. int(342391)


Ten post edytował Puszy 4.06.2012, 12:02:04
Go to the top of the page
+Quote Post
duch4ever
post 4.06.2012, 12:31:49
Post #7





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 22.06.2010

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
redeemer
post 4.06.2012, 14:19:35
Post #8





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


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).


--------------------
Go to the top of the page
+Quote Post
duch4ever
post 4.06.2012, 14:34:34
Post #9





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 22.06.2010

Ostrzeżenie: (0%)
-----


Te liczby nie zaczynają się od zera, korzystam z systemu x64 (windows 7). Można to jakoś przekonwertować?
Go to the top of the page
+Quote Post
maly_swd
post 4.06.2012, 14:42:35
Post #10





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


http://forum.php.pl/index.php?showtopic=19...st&p=967350 drugie zdanie


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
duch4ever
post 5.06.2012, 14:11:30
Post #11





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 22.06.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
maly_swd
post 6.06.2012, 14:39:00
Post #12





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.06.2024 - 03:27