Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Jak zaokrągli ciąg liczb do 3 miejsc po przecinku
busyboy
post 28.06.2013, 10:08:53
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Witam

Mam ciag licz np 16000 i chciałbym wstawić przecinek tak aby był ciąg zaokrąglony do 3 miejsc po przecinku czyli 16,000.

Proszę o wskazówki jak mam to zrobić ?

Dziekuje
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post 28.06.2013, 10:13:03
Post #2





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




http://pl1.php.net/manual/en/function.number-format.php


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

"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
busyboy
post 28.06.2013, 10:25:09
Post #3





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Dziekuje za pomoc - działa

Ale jest małe ale...

Gdy podam zmienną

  1. $number = 1000;
  2.  
  3. // english notation without thousands separator
  4. $english_format_number = number_format($number);


wyświetla mi - 1,000

Ale gdy podam zmienną

  1. $number = 250;
  2.  
  3. // english notation without thousands separator
  4. $english_format_number = number_format($number);


To wyąwietla mi - 250 zamiast 0,250 sad.gif

Ten post edytował busyboy 28.06.2013, 10:38:09
Go to the top of the page
+Quote Post
b4rt3kk
post 28.06.2013, 13:27:46
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Bo to nie jest zaokrąglenie, tylko zapis anglosaski, oddziela przecinkiem tysiące, a liczba 250 jest mniejsza od tysiąca, więc nie ma co oddzielać.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
Crozin
post 28.06.2013, 14:11:10
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Nie number_format, a NumberFormatter - nie będziesz musiał każdorazowo powtarzać ustawień dla formattera, a zmiana ustawień lokalizacji aplikacji nie będzie jednym wielkim bólem dupy. wink.gif
2. Wracając do tematu: http://ideone.com/ndUYSS - coś musiałeś namieszać ponieważ nie ma prawa wyświetlić Ci się "0,250".

EDIT: Dopiero teraz zauważyłem, że pożądany wynik to "0,250", a nie że taki jest otrzymywany.

1. Zapis liczby 250 w notacji anglosaskiej jako 0,250 jest po prostu bez sensu stąd nie ma gotowych narzędzi do tego typu działań. Zresztą po co w ogóle Ci coś takiego?
2. Czy nie powinieneś przypadkiem przejść na części tysięczne liczby? Wtedy taki zapis ma już sens.

PS. 16000 to liczba. Tutaj co najwyżej można mówić o ciągu cyfr. wink.gif

Ten post edytował Crozin 28.06.2013, 14:15:17
Go to the top of the page
+Quote Post
busyboy
post 28.06.2013, 22:51:12
Post #6





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Może sprecyzuje to dokładniej, mam plik z towarami - dokładnie z PC Market - w następującej formie :

TOW;5900085004281;Baleron Prasowany z Indyka;987;1270;34000;8

TOW - wartość stała
5900085004281 - kod towaru (w tym przypadku EAN)
Baleron Prasowany z Indyka - nazwa towaru
987 - cena netto - w PC Market widnieje jako 9,87 - czyli przecinek jest wstawiony przed przedostatnią cyfrą
1270 - cena brutto - w PC Market widnieje jako 12,70 - czyli przecinek jest wstawiony przed przedostatnią cyfrą
34000 - ilość - w PC Market widnieje jako 34,000 - czyli przecinek jest wstawiony przed trzecią cyfrą od konca
8 - wartość określająca stawkę VAT w tym przypadku 8 %

Na początku chciałem jeszcze stworzyć skrypcik który by mi importował do bazy konkretny plik który wskaże – ale za bardzo nie wiedziałem jak to zrobił i będę importował przez phpmyadmin.
Problem polega na przekonwertowaniu tych licz aby zostały przedstawione w odpowiedni sposób – przykład powyżej – zapisane mogą być do bazy w takiej formie – tylko chodzi np. o to gdy są pobierane z bazy aby były odpowiednio przekonwertowane.
Mam nadzieje że teraz wyjaśniłem jaśniej…
Go to the top of the page
+Quote Post
Mackos
post 28.06.2013, 23:19:02
Post #7





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


No to chyba logiczne że możesz sobie po prostu to podzielić, czyli:
$cenaNetto/100 (te 987/100 = 9,87)
$cenaBrutto/100 (te 1270/100 = 12,7)
$ilosc - tu chyba chodzi o zapis anglosaski jak wspomniał b4rt3kk ale jeśli nie to /1000
I masz normalnie ceny, jedyne co to dla ścisłości możesz dać number format.

Ten post edytował Mackos 28.06.2013, 23:21:00


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
busyboy
post 29.06.2013, 08:47:56
Post #8





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Hmm faktycznie rozwiązanie banalne ale na to nie wpadłem, a co z wprowadzaniem takiej wartosci? Np jak wprowadze wartosci 25 to zeby mi zapisam jako 25000 a np jak wprowadze wartość 24,5 to zapisze mi jako 24500 lub 22,550 to zeby zapisal mi jako 22550.

Schemat jest następujący ja wpisuje jakąś wartość po przecinku lub bez a on zapiuje mi do bazy w formie np

24 - > 24000
22,5 -> 22500
3,545 -> 3545

Go to the top of the page
+Quote Post
Mackos
post 29.06.2013, 09:26:10
Post #9





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


Uderz się czymś ciężkim tongue.gif
Skoro chcesz wykonać działanie odwrotne, to odwrotnością dzielenia jest ... ?


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
busyboy
post 29.06.2013, 15:40:44
Post #10





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


masakra,sorki ale jeszcze nie kontaktowalem... dla mnie juz jest wszystko jasne... przepraszam za tak banalny temat.

Pozdrawiam
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: 26.06.2025 - 13:31