sprintf - ¿Cambiar el signo de un número en PHP?
round php (8)
Tengo algunas carrozas:
-4.50
+6.25
-8.00
-1.75
¿Cómo puedo cambiar todo esto a flotantes negativos para que se conviertan en:
-4.50
-6.25
-8.00
-1.75
También necesito una forma de hacer lo inverso
Si el flotador es negativo, hazlo positivo.
¿Qué tal algo trivial como:
Invertir:
$num = -$num;
convirtiendo solo positivo en negativo:
if ($num > 0) $num = -$num;
convirtiendo solo negativo en positivo:
if ($num < 0) $num = -$num;
Creo que la respuesta de Gumbo está bien. Algunas personas prefieren esta expresión elegante que hace lo mismo:
$int = (($int > 0) ? -$int : $int);
EDITAR : aparentemente estás buscando una función que también haga positivos a los negativos. Creo que estas respuestas son las más simples:
/* 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); }
Un trivial
$num = $num <= 0 ? $num : -$num ;
o, la mejor solución, en mi humilde opinión:
$num = -1 * abs($num)
Como @VegardLarsen ha publicado,
la multiplicación explícita se puede evitar por falta de precisión, pero prefiero la legibilidad a la brevedad
Sugiero evitar if / else (u operador ternario equivalente) especialmente si tiene que manipular una cantidad de elementos (en un ciclo o usando una función lambda ), ya que afectará el rendimiento.
"Si el flotador es negativo, haz que sea positivo".
Para cambiar el signo de un número, simplemente puede hacer:
$num = 0 - $num;
o, multiplíquelo por -1, por supuesto :)
re the edit: "También necesito una forma de hacer el reverso Si el float es negativo, haz que sea positivo"
$number = -$number;
cambia el número a su opuesto.
usando la solución alberT y Dan Tao:
negativo a positivo y viceversa
$num = $num <= 0 ? abs($num) : -$num ;
$float = -abs($float);
function invertSign($value)
{
return -$value;
}
function positive_number($number)
{
if ($number < 0) {
$number *= -1;
}
return $number;
}