如何限制XSL中的有效位数?

时间:2013-03-10 14:00:42

标签: xml xslt format limit

我需要将字段的值设置为“12345678”(在8位数字处)或“12345678.1234”(8位有效数字和小数点后4位数)。用户实际输入时会检查这些数字。这取决于用户输入的内容。但他不能超过限额

我尝试过格式号码功能,但它不起作用。 PS:我的雇主不会让我在这里复制粘贴代码。

任何帮助将不胜感激。 谢谢, Aashiq Hussain。

2 个答案:

答案 0 :(得分:1)

所以你想要截断小数点前超过8位的任何内容,或小数点后超过4位的内容?怎么样?

format-number(. mod 100000000, '#.####') 

答案 1 :(得分:1)

此转化

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="x">
  <xsl:variable name="vIntPart" select="floor(.)"/>
  <xsl:variable name="vFractPart" select=". - $vIntPart"/>

  <xsl:value-of select="concat(substring($vIntPart, 1,8),
                               '.',
                               substring($vFractPart*10000, 1,4)
                               )"/>
 </xsl:template>
</xsl:stylesheet>

应用于以下XML文档时:

<t>
 <x>1234567890.9876543</x>
 <x>1234567890</x>
 <x>.9876543</x>
</t>

会产生想要的正确结果:

 12345678.9876
 12345678.0
 0.9876