Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyświetlanie liczby sprzed znaku
mrsss
post 27.12.2016, 22:35:39
Post #1





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

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


Witam.

Mam taki problem - chce wyświetlać tylko cyfry sprzed jakiegoś znaku, np. jak mam 1099.99 chcę, aby wyświetlało mi się tylko 1099.
Poniżej kod, w którym nie mam pojęcia co jest nie tak (jestem zielony w phpie...), może ktoś pomoże? oneeyedsmiley02.png

  1. for($i=0;$i<count($tab);$i++){
  2. $s=$tab[$i][1];
  3. $tab[$i][1]="";
  4. for($j=0;$j<strlen($s);$j++){
  5. if(is_numeric($s[$j])){
  6. $tab[$i][1].=$s[$j];
  7. }
  8. else break;
  9. }
  10.  
  11. }


Ten post edytował mrsss 27.12.2016, 22:36:41
Go to the top of the page
+Quote Post
KsaR
post 27.12.2016, 23:09:05
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


PHP 4.3+
  1. <?php
  2.  
  3. $s = '1099.99';
  4. $tmp = explode('.', $s, 2);
  5. echo $tmp[0];

PHP 5.4+
  1. <?php
  2.  
  3. $s = '1099.99';
  4. echo explode('.', $s, 2)[0];


Ten post edytował KsaR 27.12.2016, 23:19:20


--------------------
Go to the top of the page
+Quote Post
Puszy
post 28.12.2016, 10:26:32
Post #3





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

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


Jeżeli masz pewność że zawsze to będzie liczba zmiennoprzecinkowa to możesz pokusić się o użycie intval() ewentualnie ceil() lub floor().
Go to the top of the page
+Quote Post
Pyton_000
post 28.12.2016, 11:05:28
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


ceil i floor zmienią liczbę sprzed znaku dziesiętnego.

  1. echo (int)'1234.1234';
Go to the top of the page
+Quote Post
Puszy
post 28.12.2016, 11:12:11
Post #5





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

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


Cytat(Pyton_000 @ 28.12.2016, 11:05:28 ) *
ceil i floor zmienią liczbę sprzed znaku dziesiętnego.

  1. echo (int)'1234.1234';


floor nie zmieni wartości, jedynie ceil w przypadku wartości dziesiętnej >= 5

edit: chyba że mówimy o wartościach ujemnych, tak czy siak intval() powinien załatwić sprawę.

Ten post edytował Puszy 28.12.2016, 11:36:11
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: 19.04.2024 - 00:23