web-dev-qa-db-ja.com

PHPで数字の符号を変更しますか?

私はいくつかのフロートを持っています:

-4.50
+6.25
-8.00
-1.75

これらをすべて負のフロートに変更して、次のようにするにはどうすればよいですか?

-4.50
-6.25
-8.00
-1.75

また、私は逆を行う方法が必要です

フロートが負の場合、正にします。

55
dotty

些細な

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

または、より良い解決策、私見:

$num = -1 * abs($num)

@VegardLarsenが投稿したように、

短さのために明示的な乗算を避けることができますが、短さより読みやすさを好みます

If/else(または同等の三項演算子)を避けることをお勧めします。特に、多数のアイテムを操作する必要がある場合(ループ内またはlambda関数を使用)、パフォーマンスに影響するためです。

"フロートが負の場合、正にします。"

数字の符号を変更するには、次のようにします。

$num = 0 - $num;

または、もちろん-1を掛けます:)

149
drAlberT
$float = -abs($float);
45
Vegard Larsen

次のような些細なことはどうですか:

  • 反転:

    $num = -$num;
    
  • 正のみを負に変換する:

    if ($num > 0) $num = -$num;
    
  • 負のみを正に変換する:

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

再編集:「フロートが負の場合、逆にする方法も必要です」を正にします

$number = -$number;

数値をその反対に変更します。

12
SilentGhost

ガンボの答えは大丈夫だと思います。同じことをするこの派手な表現を好む人もいます:

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

[〜#〜] edit [〜#〜]:ネガもポジティブにする関数を探しているようです。これらの答えは最も簡単だと思います:

/* 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); }
3
Dan Tao
function positive_number($number)
{
    if ($number < 0) {
        $number *= -1;
    }

   return $number;
}
2
Wallace Maxters
function invertSign($value)
{
    return -$value;
}
0