Tengo una función Cart::total()
que devuelve el siguiente número:
Con el número retornado estoy intentando hacer la siguiente la operación:
(Cart::total() + 100);
Pero causa el siguiente error:
Error: A non-numeric value encountered
el error que estas experimentando se refiere a que estas intentando hacer una suma de 100 a un elemento que es una string por eso que en el echo que has hecho aparece entre ""
y el error en español seria algo como: no se ha encontrado un valor numerico
porque Cart::total()
no lo devuelve con int
sino como str
Para solucionar esto puedes parsear el numero que devuelve esta funcion con algo como esto:
$total = "4,506.04"; // Este sería el valor devuelto por Cart::total()
$total = str_replace(",", "", $total); // Elimina la coma
// Ahora, $total debería ser un número válido
if (is_numeric($total)) {
$totalNumeric = (float)$total;
$result = $totalNumeric + 100;
echo $result; // Este será el resultado de la operación matemática
} else {
echo "Error: El valor de total no es numérico.";
}
Con esto el resultado seria el esperado: 4506.04+100=4606.04
PD: Recuerda hacer preguntas con un poco de mas contexto quizás podías haber subido la función de Cart::total()
y te podemos ayudar mucho mejor, ya que este código no debería estar fuera o después de la función si no que la función debería retornar exactamente lo que tu necesitas que en este caso intuyo que sera un 4506.04 recuerda que el punto indica cuando empieza los decimales en cualquier sistema informático
4506.04
, no cualquier otra cosa... lo bonito de las matemáticas es que son siempre constantes. 1 + 1 siempre son dos! Ahora, si tú intentas inventarte el cómo introduces un número y pretendes que las matemáticas funcionen igual que si respetas sus reglas... pues no, claramente no va a funcionar. 4.506 NO es 4506.04, ni siquiera es 4506. Repito, estás confundiendo la REPRESENTACIÓN de un número con su valor. 4506 es cuatro mil quinientos seis, 4.506 es 4 y medio (aprox)