Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> zamiana liczby -1 na 1
Lacki2006
post 12.06.2015, 12:20:51
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

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


Witam
Czy istnieje jakaś funkcja która zamieni liczę ujemną na dodatnią mam np -21.45 a potrzebuję aby była +21.45


--------------------
----------------------------------------------------------------------------
Najlepsza scianka reklamowa z darmową dostawą w całej polsce.
Go to the top of the page
+Quote Post
nospor
post 12.06.2015, 12:21:54
Post #2





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




Nazywa sie dokladnie tak samo jak w matematyce....

http://php.net/manual/en/function.abs.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
Lacki2006
post 12.06.2015, 12:33:53
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

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


tylko że to zaokrągla do pełnej cyfry a ja potrzebuję mieś do 2 miejsc po przecinku da się to jakoś zrobić tą funkcją ?

  1. $sSum = 323.43';// Suma do zapłaty
  2. $saldo = '-21.34';// Tą kwotę należy dodać do sumy do zapłaty
  3. echo 'Kwota: '.$saldo;
  4. echo '<br>';
  5. if ($saldo<0){
  6. $saldoujemne = abs($saldo);
  7. }
  8. $sSum = ($sSum + $saldoujemne);
  9. echo 'SALDO UJEMNE:'.$saldoujemne;
  10. echo '<br>';
  11. echo ' Do zapłaty: '. $sSum;


--------------------
----------------------------------------------------------------------------
Najlepsza scianka reklamowa z darmową dostawą w całej polsce.
Go to the top of the page
+Quote Post
Mlodycompany
post 12.06.2015, 12:35:24
Post #4





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

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


to najpierw pomnóż tą liczbe przez 100 a później podziel
Go to the top of the page
+Quote Post
nospor
post 12.06.2015, 12:39:11
Post #5





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




Zgodnie z manualem oraz zgodnie z testem, ktory teraz zrobilem,
$saldo = '-21.34';
echo abs($saldo);

wszystko dziala jak nalezy.


ps: swoją drogą moglbys sie nauczyc rozrozniac liczbe -21.34 od tekstu '-21.34'


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

"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
Lacki2006
post 12.06.2015, 13:35:22
Post #6





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

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


A co masz na myśli z tym rozróżnianiem to może być rozwiązanie mojego problemu możesz mnie naprowadzić gdzie robię błąd w zapisie liczb oraz liter ?


--------------------
----------------------------------------------------------------------------
Najlepsza scianka reklamowa z darmową dostawą w całej polsce.
Go to the top of the page
+Quote Post
redeemer
post 12.06.2015, 13:43:29
Post #7





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Cytat(Lacki2006 @ 12.06.2015, 13:20:51 ) *
Witam
Czy istnieje jakaś funkcja która zamieni liczę ujemną na dodatnią mam np -21.45 a potrzebuję aby była +21.45
Nawet nie znając takiej funkcji wystarczy pomożyć liczbę przez -1. facepalmxd.gif


--------------------
Go to the top of the page
+Quote Post
Lacki2006
post 12.06.2015, 13:53:11
Post #8





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

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


Tak robiłem ale coś jest nie tak czy jest możliwe aby zmienna miała jakiś inny format STRING czy jakoś tak
mam tak
  1. $saldo = '-6.98';
  2. if ($saldo<0){
  3. $saldoujemne = $saldo*(-1);
  4. }

wynik jest ok z 2 miejscami po przecinku

i działa ok ale jak zmienię pierwszą linijkę aby pobierało ze zmiennej która ma wartość -6.98 to wyświetla żle zaokrągla do pełnej cyfry.

a tak
  1. $saldo = $pobrana_kwota; // tu jest wartość -6.98 pobrana z serwisu
  2. if ($saldo<0){
  3. $saldoujemne = $saldo*(-1);
  4. }

wynik jest błędny bo wychodzi 6

O co tu może chodzić ?


--------------------
----------------------------------------------------------------------------
Najlepsza scianka reklamowa z darmową dostawą w całej polsce.
Go to the top of the page
+Quote Post
prz3kus
post 12.06.2015, 13:58:05
Post #9





Grupa: Zarejestrowani
Postów: 260
Pomógł: 30
Dołączył: 22.01.2007

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


Jestes pewien, że ta wartość pobrana ma kropke, a nie np przecinek?
Go to the top of the page
+Quote Post
tomxx
post 12.06.2015, 19:27:28
Post #10





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Sprawdź, używając var_dump($pobrana_kwota), co zawiera zmienna $pobrana_kwota i jakiego jest typu.

Ten post edytował tomxx 12.06.2015, 19:30:22
Go to the top of the page
+Quote Post
com
post 12.06.2015, 21:54:53
Post #11





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


dostajesz przecinki zamiast . smile.gif
Go to the top of the page
+Quote Post
Pyton_000
post 12.06.2015, 23:29:12
Post #12





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

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


My to wiemy ale trzeba autora uświadomić że z bazy tak się dostaje wink.gif
zawsze najpewniej jest robić str_replace(',','.', $cos) i problem się rozwiązuje praktycznie sam wink.gif
Go to the top of the page
+Quote Post
MiFlo
post 18.06.2015, 20:27:48
Post #13





Grupa: Zarejestrowani
Postów: 92
Pomógł: 4
Dołączył: 12.09.2006
Skąd: 127.0.0.1

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


Poza tym że "21.34" jest stringiem to gdyby był float to jeżeli jest mniejsza niż 0 wystarczy pomnożyć przez -1 aby otrzymać dodatnią tudzież użyć abs()

Ten post edytował MiFlo 18.06.2015, 20:28:48
Go to the top of the page
+Quote Post
redeemer
post 18.06.2015, 20:55:48
Post #14





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


To czy zmienna jest floatem/double czy stringiem nie ma znaczenia.

  1. $a="-21.44";
  2. var_dump($a); // czy napewno string
  3.  
  4. $b=-21.44;
  5. var_dump($b); // czy napewno float/double
  6.  
  7. echo -1 * $a.PHP_EOL;
  8. echo abs($a).PHP_EOL;
  9.  
  10. echo -1 * $b.PHP_EOL;
  11. echo abs($b).PHP_EOL;
  12.  


--------------------
Go to the top of the page
+Quote Post
com
post 21.06.2015, 20:35:39
Post #15





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


w php do wersji 7 nie masz itak typowania smile.gif
Go to the top of the page
+Quote Post
com
post 25.06.2015, 20:33:18
Post #16





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


nie ma jawnego, wiec jest niejawna konwersja na typ i czasem wychodzą bzdury.

dlatego
  1. $saldo = '-6.98';
  2. if ($saldo<0){
  3. $saldoujemne = $saldo*(-1);
  4. }
  5.  
  6. var_dump($saldoujemne); // float(6.98)
Go to the top of the page
+Quote Post
com
post 25.06.2015, 21:40:34
Post #17





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


w php wszystko jest interpretowane, zacznijmy od tego wiec typ jest rozpoznawany na podstawie wartości i robione w sposób niejawny, stad też coś co dla php było na początku stringiem można było porównać z 0, i tak samo pomnożyć przez -1 i co otrzymaliśmy, ze stringa float.

@down
sam bym tego lepiej nie ujął biggrin.gif

Ten post edytował com 25.06.2015, 21:47:58
Go to the top of the page
+Quote Post
Damonsson
post 25.06.2015, 21:42:15
Post #18





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


No stary skoro ze stringa robisz float to, "w php jest jasny podział na typy." - to trochę kiepskie podsumowanie wink.gif
Go to the top of the page
+Quote Post
com
post 25.06.2015, 21:51:57
Post #19





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


a na podstawie czego? jakieś dowody prosze smile.gif
Go to the top of the page
+Quote Post
Comandeer
post 25.06.2015, 21:53:15
Post #20





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Cytat("darek334")
Typ zmiennych nie jest rozpoznawany na podstawie wartości to złudzenie składni php któremu dałeś się złapać.

W takim razie na podstawie czego jest rozpoznawany?
  1. <?php
  2. $a = 1;
  3. var_dump(gettype($a)); //integer
  4.  
  5. $a = '1';
  6. var_dump(gettype($a)); //string

Jak dla mnie zmienia się w zależności od wartości zmiennej.


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 28.05.2025 - 21:59