PHP bir sayının işaretini değiştirme?

4 Cevap php

Hay Beyler, ben hızlı bir soru var.

Birkaç yüzen var:

-4.50
+6.25
-8.00
-1.75

Nasıl olumsuz yüzen tüm bu değiştirebilirsiniz böylece olur:

-4.50
-6.25
-8.00
-1.75

Ayrıca ben tersini yapmak için bir yol gerekir

Şamandıra bir negatif ise, olumlu bunu yapmak.

Teşekkürler

4 Cevap

Önemsiz

$num = $num <= 0 ? $num : -$num ;

ya da, daha iyi bir çözüm, IMHO:

$num = -1 * abs($num)

EDIT:

açık çarpma @ VegardLarsen gönderdi olarak darlığı önlenebilir, ama ben darlığı üzerinden okunabilirliği tercih :)

EDIT2:

I / else (veya eşdeğeri üçlü operatörü), bu performansını etkileyecek gibi (bir döngü ya da bir lambda function kullanarak) öğeleri bir dizi işlemek zorunda, özellikle kaçının öneririz.

EDIT3:

"If the float is a negative, make it a positive."

Bir sayının işaretini değiştirmek için sadece yapabilirsiniz:

$num = 0 - $num;

ya da, tabii ki, -1 ile çarpın :)

Nasıl hakkında bir şey önemsiz gibi:

  • inverting:

    $num = -$num;
    
  • Olumsuz içine sadece pozitif dönüştürme:

    if ($num > 0) $num = -$num;
    
  • Pozitif içine sadece negatif dönüştürme:

    if ($num < 0) $num = -$num;
    

düzenlemek re: "Also i need a way to do the reverse If the float is a negative, make it a positive"

$number = -$number;

karşıtına numarasını değiştirir.

Ben Gumbo cevabı sadece iyi olduğunu düşünüyorum. Bazı insanlar aynı şeyi yapar, bu fantezi ifadeyi tercih:

$int = (($int > 0) ? -$int : $int);

EDIT: Anlaşılan siz de negatif pozitif yapacak bir işlev arıyor. Ben bu cevaplar basit olduğunu düşünüyorum:

/* I am not proposing you actually use functions called
   "makeNegative" and "makePositive"; I am just presenting
   the most direct solution in the form of two clearly named
   functions. */
function makeNegative($num) { return -abs($num); }
function makePositive($num) { return abs($num); }