Nueva pregunta

Pregunta:

Fecha: 05-06-2018 04:46:29 (En Español)

Multiplicación en PHP[Resuelta]

Hola me surgió un problema al realizar una simple multiplicación y me sale el error.
Notice: A non well formed numeric value encountered

Los calculo lo hace bien, vienen de un formulario pero empezo a tirar ese error.
echo $lar=$_POST['largo'].'<br>';
echo $anc=$_POST['ancho'].'<br>';

$m2= $_POST['largo']*$_POST['ancho']. " M2".'<br>';

$medida= 265;

$gr=$m2*$medida;
echo $gr ." Gr";


Busque en Internet y no encuentro una respuesta en concreto, al colocar el @ se evita pero quisiera saber el porque, muchas gracias
Etiquetas: Votos: 1 - Respuestas: 6 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 05-06-2018 05:43:23 Probé tu código usando PHP 7.0 y no tuve ese error, sin embargo, me suena haberlo visto en PHP 7.2... ¿qué versión estás usando?   Votos: 0 - Link respuesta
     
  • Fecha: 05-06-2018 06:43:54 Ya veo el problema. Es en la línea 10:

    $gr=$m2*$medida;


    Fijate la definición de este error: http://php.net/manual/es/migration71.other-changes.php, dice que va a dar notice si se intenta una operación aritmética sobre cadenas que terminen en algo que no es un número...

    En tu caso, fijate cómo formás $m2:

    $m2= $_POST['largo']*$_POST['ancho']. " M2".'<br>';


    Al final le estás agregando " M2"... no sé cómo estaba haciendo la cuenta antes :p
      Votos: 2 - Link respuesta
     
  • Fecha: 05-06-2018 15:47:48 Hola Mauro como estas, gracias por tu respuesta. Ahí cambie eso igualmente me sigue corriendo el error.
    <?php
    $lar=$_POST['largo'].'<br>';
    $anc=$_POST['ancho'].'<br>';
    $medida= 265;
    
    echo "su Largo es: ".$lar."<br>";
    echo "Su Ancho es: ".$anc;
    
    $gr= ($lar*$anc)*$medida;
    
    ?>


    la versión que tengo es PHP: 7.1.7
      Votos: 0 - Link respuesta
     
  • Fecha: 05-06-2018 21:11:07 No incluyas texto como ya te dijeton, y no veo porque agregas saltos de linea a la llegada post, de verdad no le veo la necesidad, prueba asi:

    $lar=$_POST['largo'];
    $anc=$_POST['ancho'];
    $medida= 265;
    
    echo "su Largo es: ".$lar."<br>";
    echo "Su Ancho es: ".$anc;
    
    $gr= ($lar*$anc)*$medida;
    


    El asunto es que agregas un saldo de linea a los datos que llegan desde el formulario
      Votos: 3 - Link respuesta
     
  • Fecha: 06-06-2018 04:37:39 @Carlos: ¡qué bueno que lo viste! Me estaba volviendo loco tratando de entender por qué el error seguía apareciendo :).

    Es así @Sebastián, al hacer:

    $lar=$_POST['largo'].'<br>';
    $anc=$_POST['ancho'].'<br>';


    Al momento de la multiplicación se está haciendo:

    $gr= ("30<br>"*"50<br>")*$medida;


    (Suponiendo que $_POST['largo'] = 30 y $_POST['ancho'] = 50).

    De ahí que siga dando el mismo error. Los <br> reservalos para los echo, en otro contexto tienen poca utilidad.
      Votos: 0 - Link respuesta
     
  • Fecha: 06-06-2018 07:59:51 Es verdad una tontería, los <br> quedaron solo cuando quise mirar los resultados y seguía. me surgió al cambiar y no entendía el porque. Muchas gracias a todos por la aclaración.   Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com