Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Porównanie typów. Konwersja string do float.
007slawek
post 14.02.2012, 14:59:24
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 18.04.2002
Skąd: Warszawa

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


Mam coś takiego:

  1. $a = (float) "27.8000";
  2. $b = (float) "27.9000";
  3. $c = (float) "0.10";
  4.  
  5. $d = $b - $c; //To powinno być równe $a
  6.  
  7. var_dump($a); // zwraca : float(27.8)
  8. var_dump($d); // zwraca : float(27.8)
  9.  
  10. if($a == $d){
  11. echo 'true';
  12. }
  13. else{
  14. echo 'false';
  15. }

Niestety porównanie $a z $d daje false mimo tego, że var_dump pokazuje te same typy i te same wartości.
Użycie
  1. if($a === $d)
też zwraca false.
Dopiero jak wstawię przed var_dump np.

  1. $a = round($a,4);
  2. $d = round($d,4);


to wtedy porównanie zwraca true a var_dump w obu przypadkach bez zmian pokazuje float(27.8).

Ktoś mi wytłumaczy o co chodzi, bo chyba jeszcze śpię?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post 14.02.2012, 15:10:54
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przy liczbach rzeczywistych zawsze będziesz miał takie kwiatki - norma. Nawet jak wizualnie wygląda wszystko na równe, to dla komputera przy liczbach rzeczywistych to równe nie będzie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
007slawek
post 14.02.2012, 15:19:21
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 18.04.2002
Skąd: Warszawa

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


a masz jakiś pomysł, żeby to działało?
Go to the top of the page
+Quote Post
nospor
post 14.02.2012, 15:20:10
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ty sam przecież napisałeś rozwiązanie:
  1. $a = round($a,4);
  2. $d = round($d,4);

Innego raczej nie ma. Takie są uroki liczb rzeczywistych


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
007slawek
post 14.02.2012, 15:21:36
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 18.04.2002
Skąd: Warszawa

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


myślałem, że jest ktoś mądrzejszy ode mnie:D
Go to the top of the page
+Quote Post
nospor
post 14.02.2012, 15:22:19
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Bo jest, masa osób tongue.gif
Ode mnie zresztą też smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
007slawek
post 14.02.2012, 15:24:15
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 18.04.2002
Skąd: Warszawa

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


tak tak, Ciebie to już znam
Go to the top of the page
+Quote Post
nospor
post 14.02.2012, 15:26:15
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie, nie znasz mnie. Wymieniłeś ze mną jedynie parę PW. Jakby tak oceniać wiedzę drugiego człowieka, na podstawie paru wymienionych zdań, to z pełnym przekonaniem mógłbym napisać że jesteś analfabetą.... wink.gif a oboje wiemy że nie jesteś, więc po paru PW i zamknięciach tematu naprawdę nie można pisać, że się kogoś zna smile.gif
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 14.08.2025 - 06:02