4,395
edits
| Line 136: | Line 136: | ||
* las páginas web mostradas en pantalla se encuentran en formato UTF8 (con versiones < 2.5.1, es el antiguo parámetro $character_set del fichero conf.php quien define el formato de salida). | * las páginas web mostradas en pantalla se encuentran en formato UTF8 (con versiones < 2.5.1, es el antiguo parámetro $character_set del fichero conf.php quien define el formato de salida). | ||
=== | === Los números reales, las cantidades y los cálculos === | ||
Tanto en PHP como en otros lenguajes (Java, por ejemplo), los datos no enteros (float, real, double) no son fialbes. | |||
Pruebe a realizar por ejemplo | |||
<pre> | <pre> | ||
print 239.2 - 229.3 - 9.9; | print 239.2 - 229.3 - 9.9; | ||
</pre> | </pre> | ||
No obtenrá 0, sino un número muy pequeño negativo. Si obtiene cero, puede encontrar otros ejemplos que no funcionan. Si vous obtenez zéro, vous pourrez trouvez d'autres exemples qui ne fonctionnent pas. | |||
El problema de los float es general, una variable resultante del cálculo de números reales debe SISTEMATICAMENTE ser limpiada mediante la función price2num con el segundo parámetro rellenado con: 'MU', 'MT' ó 'MS' según el caso (ver doc de la función). | |||
<pre> | <pre> | ||
print price2num(239.2 - 229.3 - 9.9, 'MT'); | print price2num(239.2 - 229.3 - 9.9, 'MT'); | ||
</pre> | </pre> | ||
Si no es un precio que se ajuste a los parámetros de MU, MT, MS debe utilizar la función '''round()'''. | |||
=== Création de tables === | === Création de tables === | ||