 |
Coders' city Nasza pasja to programowanie!
|
Zobacz poprzedni temat :: Zobacz nastêpny temat |
Autor |
Wiadomo¶æ |
nillvo
Do³±czy³: 10 Cze 2009 Posty: 67
|
Wys³any: Pon Kwi 09, 2018 11:21 am OP Temat postu: Dodawanie cen w p?tli - b??d |
|
|
Witam, Pisz?, gdy? problem pozornie banalny od kilku dni nie daje si? rozwi?za?. Nie jestem w stanie poprawnie doda? cen. W bazie maj? one tak? posta?:
1 174,00 2 853,60 1 881,90
Próbowa?em na ró?ne sposoby - wynik jakie daje kod to 4. Co gorsza, próbowa?em usun?? spacj? - w celu eliminacji b??du (wida? dodaje tylko pierwsz? cyfr?) - ale si? nie da (trim, preg, replace - nie dzia?aj?).
Kod: |   
  if ($pobierz->num_rows > 0) {
  while($row = $pobierz->fetch_assoc()) {
  $IDD = $row['NUMER_ZAMOWIENIA'];
  $KASA = pobierz_dane_z_bazy("SELECT * FROM um_zamowienia WHERE ID='$IDD' AND STATUS <> 'oferta' AND STATUS <> 'wp?ata'","KOSZT");
  $KASA = str_replace(' ', '', $KASA); //nie dzia?a
  $TEMP = preg_replace('/\s+/', '', $KASA); //nie dzia?a
  $TEMP = trim($TEMP); //nie dzia?a
  echo $TEMP.','; // efekt przyk?adowo: 1 174,00 (ze spacj?!)
  $value += (float)$TEMP;
  }
  
|
$value zwraca wynik 4. Próbowa?em z (string) albo (float), (double) Efekt ten sam. Za?amka. W jaki sposób poprawnie doda? w p?tli liczby w tym formacie?
1 174,00 2 853,60 1 881,90 |
|
Powrót do góry |
|
 |
|
Garf

Do³±czy³: 25 Maj 2005 Posty: 3607 Sk±d: Rzeszów
|
Wys³any: Pon Kwi 09, 2018 1:03 pm Temat postu: |
|
|
Ech... Primo - przecinek jest u?ywany do zapisu liczb z u?amkiem tylko w niektórych krajach. W pozosta?ych u?ywa si? kropki - i tutaj powiniene? jej u?y? zamiast przecinka. Secundo - nie pro?ciej by?oby zrobi? SUM() w SQL'u? Tertio - nie wiadomo w jaki sposób tworzona jest warto?? wynikowa funkcji pobierz_dane_z_bazy(). Mo?e lepiej tutaj poprawi? zwracan? warto?? ni? bawi? si? z tym pó?niej?
i dziwne, u mnie dzia?a:
Kod: |   $ php
  <?php
  $KASA = '1 174,33';
  $KASA = str_replace(' ', '', $KASA); //nie dzia?a
  $TEMP = preg_replace('/\s+/', '', $KASA); //nie dzia?a
  $TEMP = trim($TEMP); //nie dzia?a
  echo $TEMP."\n";
  $value = (float)$TEMP;
  echo $value."\n";
  
  1174,33
  1174
  
|
Nie wiemy jaka wersja PHP, jakie ?rodowisko, czy nie ma ogranicze? w dozwolonych funkcjach... _________________ Internet nadal „nic nie rozumie”, ?adnego odkrycia, cho?by od niego zale?a? los ?wiata, ale nadanego w egzotycznym j?zyku, nie odró?ni od nieco mniej wa?nej wie?ci, ?e u ciotki w placku z jab?kami zrobi? si? w piekarniku zakalec. Stanis?aw Lem
|
|
Powrót do góry |
|
 |
nillvo
Do³±czy³: 10 Cze 2009 Posty: 67
|
Wys³any: Pon Kwi 09, 2018 1:54 pm OP Temat postu: |
|
|
Dzi?ki za odpowied?. Pomog?a zmiana typu zmiennej w bazie na double, zamiana przecinek na kropki (niestety system ci?gnie dane z nieszcz?snej OPTIMY, a tam format cen zawiera przecinki). Teraz sumuje za pomoc? SUM i wszystko ?miga. Dzi?ki za pomoc :) |
|
Powrót do góry |
|
 |
|
|
Mo¿esz pisaæ nowe tematy Mo¿esz odpowiadaæ w tematach Nie mo¿esz zmieniaæ swoich postów Nie mo¿esz usuwaæ swoich postów Nie mo¿esz g³osowaæ w ankietach Mo¿esz dodawaæ za³±czniki na tym forum Mo¿esz pobieraæ pliki z tego forum
|
 Debug: strone wygenerowano w 0.04798 sekund, zapytan = 11
|