Zend_Currency-Value.xml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.currency.value">
  5. <title>Travailler avec les valeurs des monnaies (les montants)</title>
  6. <para>
  7. Travailler avec des monnaies c'est avant tout travailler avec des valeurs, des "prix", un montant.
  8. Il faut ainsi travailler avec le montant (la valeur), la précision et l'éventuel taux de change.
  9. </para>
  10. <sect2 id="zend.currency.value.money">
  11. <title>Travailler avec les valeurs des monnaies</title>
  12. <para>
  13. La valeur de la monnaie (le montant) se précise grâce à l'option <property>value</property>.
  14. </para>
  15. <programlisting language="php"><![CDATA[
  16. $currency = new Zend_Currency(
  17. array(
  18. 'value' => 1000,
  19. 'currency' => 'USD',
  20. )
  21. );
  22. print $currency; // Retournerait '$ 1.000'
  23. ]]></programlisting>
  24. <para>
  25. Vous pouvez changer la valeur en utilisant les méthodes <methodname>setFormat()</methodname>
  26. ou <methodname>setValue()</methodname>.
  27. </para>
  28. <programlisting language="php"><![CDATA[
  29. $currency = new Zend_Currency(
  30. array(
  31. 'value' => 1000,
  32. 'currency' => 'USD',
  33. )
  34. );
  35. print $currency->setValue(2000); // Retournerait '$ 2.000'
  36. ]]></programlisting>
  37. <para>
  38. <methodname>getValue()</methodname> existe aussi.
  39. </para>
  40. </sect2>
  41. <sect2 id="zend.currency.value.precision">
  42. <title>Utiliser la précision des monnaies</title>
  43. <para>
  44. La plupart des monnaies utilisent une précision de 2, ce qui signifie qu'avec 100 dollars US
  45. vous pouvez rajouter 50 cents. C'est simplement le paramètre après la virgule.
  46. </para>
  47. <programlisting language="php"><![CDATA[
  48. $currency = new Zend_Currency(
  49. array(
  50. 'value' => 1000.50,
  51. 'currency' => 'USD',
  52. )
  53. );
  54. print $currency; // Retournerait '$ 1.000,50'
  55. ]]></programlisting>
  56. <para>
  57. Comme la précision est de 2, vous obtiendrez des décimales à '00' pour un chiffre rond.
  58. </para>
  59. <programlisting language="php"><![CDATA[
  60. $currency = new Zend_Currency(
  61. array(
  62. 'value' => 1000,
  63. 'currency' => 'USD',
  64. )
  65. );
  66. print $currency; // Retournerait '$ 1.000,00'
  67. ]]></programlisting>
  68. <para>
  69. Pour pallier à ce problème de précision, vous pouvez simplement utiliser l'option
  70. <property>precision</property> avec la valeur '0'. La précision prend une valeur entre
  71. 0 et 9. Les valeurs des monnaies seront arrondies lorsqu'elles ne tiennent pas dans la
  72. précision demandée.
  73. </para>
  74. <programlisting language="php"><![CDATA[
  75. $currency = new Zend_Currency(
  76. array(
  77. 'value' => 1000,30,
  78. 'currency' => 'USD',
  79. 'precision' => 0
  80. )
  81. );
  82. print $currency; // Retournerait '$ 1.000'
  83. ]]></programlisting>
  84. </sect2>
  85. </sect1>