![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
Cześć!
Mam trywialny programik, zaczytujący XML-e (jest to import z Symfonii). No i sobie dane czyta, np cenę 27.77 Okazuje się, że np przy mnożeniu, php nie widzi części ułamkowej. Nie wiem o co chodzi- na wydruku kontrolnym, naprawdę jest tam kropka a nie przecinek. pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytać to sobie możesz książkę.
Lepiej sprawdź czy faktycznie w zmiennej która jest mnożona jest wartość która tam powinna być i jest taka jak powinna być |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj użyć funkcji var_dump i sprawdź typ, bo może masz to jako string i rzutuj do typu (float).
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
To czy ma string to nie jest istotne, istotne jest żeby zamiast , była . w tym stringu
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
a gdzie kod?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
http://test.medlife.pl/import_xml.txt
problem w linii 115 - Ten post edytował peters2004 2.06.2015, 14:00:53 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
A robiłeś var_dump() na zmiennej $cena_brutto? Czy poprostu w bazie danych masz stałą wartość? Czy aby w bazie nie masz na polu INT zamiast DOUBLE?
Na przyszłosc kod wrzucaj do pastebin.com albo wklejto.pl Ten post edytował daniel1302 2.06.2015, 07:51:01 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
A robiłeś var_dump() na zmiennej $cena_brutto? Czy poprostu w bazie danych masz stałą wartość? Czy aby w bazie nie masz na polu INT zamiast DOUBLE? Na przyszłosc kod wrzucaj do pastebin.com albo wklejto.pl Do bazy danych to ja dopiero zapisuję wynik. To jest import z xml-a. I zapewniem, że jest tam kropka a nie przecinek. Jak dałem echo po mnożeniu, to widzę iż nie uwzględnia części ułamkowej (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
a zrób zamiast echa takie coś
var_dump(json_encode($ZMIENNA)); i sprawdź czy zamiast kropki nie ma dziwnego znaku |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
string(13) "{"0":"27.77"}"
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
No to z tego co widzę masz obiekt(JS)- Tablice w php a nie String. Spróbuj dać takie coś var_dump($zmienna[0]);
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Możesz w końcu dać wynik polecenia tego co Ci dałem zamiast bawić się w jakieś durne jsony?
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Nie mam pojęcia, ale echo nie nadaje się do debugu, można sobie wyświetlać tekst co najwyżej tym. Z JSON'a widać, że jest to obiekt.
i Taki kod też zwraca obiekt:
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
zmieniłem na $cena_brutto = $cena_netto[0]*$mul;
wynik bez zmian 27.77 * 1.08 daje 29.16937 a powinno 29.9916 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem Cię, jeśli to była by liczba całkowita to wynik byłby 27.16 a tutaj jest prawie 27.17 czyli coś źle podajesz.
Zrób jak powiedział Pyton i pokaż co zwraca Ci var_dump. Musisz nauczyć się sam debugować skrypty nikt nie zgadnie co jest nie tak dopuki nie pomozesz... |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
wynik w 116 linijce z object(SimpleXMLElement)#10 (1) { [0]=> string(5) "27.77" } float(1.08) object(SimpleXMLElement)#9 (1) { [0]=> string(5) "22.37" } rozwiązaniem jest dodanie konwersji string na float, czyli dodanie (float) ale dlaczego to było konieczne, pojęcia nie mam pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:57 |