Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sprawdzanie czy ciąg cyfr jest większy od drugiego., Np.: taki: 2:00,635.
Giluś
post 29.06.2012, 16:32:15
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Cześć, może mi doradzicie, jak sprawdzić czy ciąg cyfr jest większy lub mniejszy od drugiego są one w dosyć nietypowej strukturze bo takiej: 2:00,635, zwykłym warunkiem tego nie zrobię
  1. if (a > B) {c} else {d}


Dla przykładu podam 2 ciągi liczb:
Kod
a) 1:59,590
b) 2:00,635

Z góry bardzo dziękuje i pozdrawiam.

Ten post edytował Giluś 29.06.2012, 16:32:56
Go to the top of the page
+Quote Post
usb2.0
post 29.06.2012, 16:41:08
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

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


można by podzielić takie liczby na tablice postaci
0=>1
1=>59
2=>590
i sprawdzać w pętli
natomiast samo dzielenie explodem zapewne

chociaz pewnie jest lepsza metoda;)
Go to the top of the page
+Quote Post
d3ut3r
post 29.06.2012, 16:42:44
Post #3





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Myślę że można to zrobić tak:

  1. function isBigger($var1,$var2){
  2.  
  3. $var1=str_replace(array(':',','),array('','.'),$var1);
  4. $var2=str_replace(array(':',','),array('','.'),$var2);
  5.  
  6. return $var1>$var2 ? true : false;
  7.  
  8. }
  9.  
  10. $zmienna1='1:59,590';
  11. $zmienna2='2:00,635';
  12.  
  13. if (isBigger($zmienna1,$zmienna2)){
  14.  
  15. echo $zmienna1.' jest większe niż '.$zmienna2;
  16.  
  17. } else{
  18.  
  19. echo $zmienna2.' jest większe niż '.$zmienna1;
  20.  
  21. }




--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
markonix
post 29.06.2012, 16:52:21
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Po prostu usunąć wszystkie nienumeryczne znaki i porównać.
a) 159590
b ) 200635
Sposób by się nie sprawdził tylko jeżeli liczba po przecinku nie jest stała (tzn. nie ma zer wiodących).

Ten post edytował markonix 29.06.2012, 16:52:35


--------------------
Go to the top of the page
+Quote Post
greycoffey
post 29.06.2012, 16:57:01
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Jak długość tych ciągów jest zawsze taka sama, sposób markonixa będzie działał, najlepiej rozbić to na tablicę i porównywać poszczególne części (od najbardziej znaczącej).
Go to the top of the page
+Quote Post
markonix
post 29.06.2012, 17:09:25
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Nie musi być taka sama.

Kod
a) 1:59,590
b) 21:00,635
c) 121:00,635


Kod
a) 159590
b) 2100635
c) 12100635


Wciąż będzie działać. Jedynie sprawa rozchodzi się o pozostałe segmenty bo nie oznaczają "największych dziesiątek".



--------------------
Go to the top of the page
+Quote Post
Niktoś
post 29.06.2012, 17:15:37
Post #7





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Sposób markonixa raczej nie bedzie działał dla liczb dziesiętnych:
0:59
0:2334
0:43234 itp.
Metoda d3ut3r jest bardziej bezpieczna -poprostu trzeba sprowadzić ciąg cyfr do postaci używanej w danym języku programowym i potem porównywać.
Go to the top of the page
+Quote Post
markonix
post 29.06.2012, 17:30:13
Post #8





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Od kiedy w minucie masz więcej niż 59 sekund?


--------------------
Go to the top of the page
+Quote Post
Giluś
post 29.06.2012, 17:36:51
Post #9





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Robiłem tak jak markonix mówi, ale to nie zawsze mi się sprawdzało, powiedzmy tak w 80%, wiec potrzebowałem czegoś lepszego d3ut3r i usb2.0 najlepiej to wymyślili smile.gif.

Dzięki bardzo smile.gif
Go to the top of the page
+Quote Post
markonix
post 29.06.2012, 18:00:48
Post #10





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Z ciekawości mógłbyś podać kiedy się nie sprawdzało? snitch.gif


--------------------
Go to the top of the page
+Quote Post
Giluś
post 29.06.2012, 18:29:48
Post #11





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Źle Cię zrozumiałem, bo myślałem, że chcesz zmienić te czasy na sekundy i dopiero porównywać - bo ja tak robiłem, dopiero później zobaczyłem, że Ty po prostu wywalasz : i ,..
No to w takiej sytuacji działało by bo i tak zawsze dodaje mi na końcu zera (warunek zrobiłem)..
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:04