Restando float de la matriz

Tengo una matriz que contiene varios valores con índice numérico. El tipo de datos para cada valor es cadena. Sin embargo, se suponía que era un número flotante (38.50, 22.12, etc.). Lo que quiero hacer ahora es restar cada valor de la matriz con un número que me gustaría especificar yo mismo. Y luego, encuentre el número absoluto en caso de que la resta dé un número negativo como resultado.

¿Cómo puedo hacer eso?

preguntado el 10 de mayo de 11 a las 14:05

Expresado de manera diferente, le gustaría iterar sobre la matriz (que es una string[], pero debería ser un float[]) y restar un una experiencia diferente valor flotante de cada elemento dentro de la matriz? -

2 Respuestas

Quiere ver la función array_map ().

contestado el 10 de mayo de 11 a las 18:05

Voy a dar +1 solo por lo que veo. TBH, no estoy seguro de lo que quiere OP exactamente, pero esta función debería ayudarlo a superarlo sin problemas. - Brad Christie

No sé si esto es lo que quisiste decir:

$original_array = array('38.50', '22.12');

function sort( $n ){
    $num = 12.0;
    return (double)$n - $num;
}

$newarray = array_map("sort", $original_array );

Sin embargo, convertir un número entero o una cadena en un flotador puede ser complicado.

El uso de cualquiera de estas funciones las convertirá primero en un flotante adecuado:

function float_format( $number, $decimal = 2, $decimal_sep = '.', $thousands_sep = '' ){
    return number_format($number, $decimal, $decimal_sep, $thousands_sep);
}

function float_val( $number, $decimal, $float_locale = 'f' ){
    //f - the argument is treated as a float, and presented as a floating-point number (locale aware).
    //F - the argument is treated as a float, and presented as a floating-point number (non-locale aware). Available since PHP 4.3.10 and PHP 5.0.3.
    return (double)sprintf("%.".$decimal.$float_locale, $number);
}

El primero de los cuales es mejor para la moneda. Espero que esto ayude.

contestado el 10 de mayo de 11 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.