two round places numerico number floatval float decimals convertir php string casting floating-point

round - string to double php



PHP String to Float (5)

Bueno, si el usuario escribe 1,00,000, entonces floatvar mostrará el error. Asi que -

floatval(preg_replace("/[^-0-9/.]/","",$input));

Esto es mucho más confiable.

Uso:

$input = ''1,03,24,23,434,500.6798633 this''; echo floatval(preg_replace("/[^-0-9/.]/","",$input));

No estoy familiarizado con PHP en absoluto y tuve una pregunta rápida.

Tengo 2 variables @pricePerUnit y @invoicedUnits. Aquí está el código que establece estos valores:

$InvoicedUnits = ((string) $InvoiceLineItem->InvoicedUnits); $pricePerUnit = ((string) $InvoiceLineItem->PricePerUnit);

Si imprimo esto, obtengo los valores correctos. Digamos 5000 unidades facturadas y 1.00 por precio.

Ahora, necesito mostrar la cantidad total gastada. Cuando multiplico estos dos juntos, no funciona (como se esperaba, estas son cadenas).

Pero no tengo ni idea de cómo analizar / convertir / convertir variables en PHP.

¿Que debería hacer?



Tratar con el marcado en flotadores es una tarea no trivial. En la notación inglesa / americana, formatea mil más 46 * 10-2:

1,000.46

Pero en Alemania cambiarías la coma y el punto:

1.000,46


Esto hace que sea muy difícil adivinar el número correcto en aplicaciones de varios idiomas.
Recomiendo utilizar Zend_Measure del Zend Framework para esta tarea. Este componente analizará la cadena en un flotante según el idioma del usuario.


Utilice esta función para convertir un valor flotante de cualquier tipo de estilo de texto:

function parseFloat($value) { return floatval(preg_replace(''#^([-]*[0-9/.,/' ]+?)((/.|,){1}([0-9-]{1,3}))*$#e'', "str_replace(array(''.'', '','', /"''/", '' ''), '''', ''//1'') . ''.//4''", $value)); }

Esta solución no depende de ninguna configuración regional. Por lo tanto, para la entrada del usuario, los usuarios pueden escribir valores flotantes de la forma que deseen. Esto es realmente útil, por ejemplo, cuando tienes un proyecto que está en inglés solamente, pero personas de todo el mundo lo están usando y es posible que no tengan en cuenta que el proyecto quiere un punto en lugar de una coma para valores float. Podrías lanzar javascript en la mezcla y buscar la configuración predeterminada de los navegadores, pero aún muchas personas configuran estos valores en inglés, pero siguen escribiendo 1,25 en vez de 1,25 (especialmente, entre otros, la industria de la traducción, la investigación y la informática)