math.constant.template.xsl 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0"
  3. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  4. xmlns:math="http://www.exslt.org/math"
  5. exclude-result-prefixes="math">
  6. <xsl:template name="math:constant">
  7. <xsl:param name="name" select="/.." />
  8. <xsl:param name="precision" select="/.." />
  9. <xsl:choose>
  10. <xsl:when test="$name='PI'">
  11. <xsl:variable name="return">3.1415926535897932384626433832795028841971693993751</xsl:variable>
  12. <xsl:value-of select="substring($return,1,$precision)"/>
  13. </xsl:when>
  14. <xsl:when test="$name='E'">
  15. <xsl:variable name="return">2.71828182845904523536028747135266249775724709369996</xsl:variable>
  16. <xsl:value-of select="substring($return,1,$precision)"/>
  17. </xsl:when>
  18. <xsl:when test="$name='SQRRT2'">
  19. <xsl:variable name="return">1.41421356237309504880168872420969807856967187537694</xsl:variable>
  20. <xsl:value-of select="substring($return,1,$precision)"/>
  21. </xsl:when>
  22. <xsl:when test="$name='LN2'">
  23. <xsl:variable name="return">0.69314718055994530941723212145817656807550013436025</xsl:variable>
  24. <xsl:value-of select="substring($return,1,$precision)"/>
  25. </xsl:when>
  26. <xsl:when test="$name='LN10'">
  27. <xsl:variable name="return">2.302585092994046</xsl:variable>
  28. <xsl:value-of select="substring($return,1,$precision)"/>
  29. </xsl:when>
  30. <xsl:when test="$name='LOG2E'">
  31. <xsl:variable name="return">1.4426950408889633</xsl:variable>
  32. <xsl:value-of select="substring($return,1,$precision)"/>
  33. </xsl:when>
  34. <xsl:when test="$name='SQRT1_2'">
  35. <xsl:variable name="return">0.7071067811865476</xsl:variable>
  36. <xsl:value-of select="substring($return,1,$precision)"/>
  37. </xsl:when>
  38. </xsl:choose>
  39. </xsl:template>
  40. </xsl:stylesheet>