1<?xml version="1.0"?> 2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 3 4 <!-- CaseName: numbering85 --> 5 <!-- Author: Paul Dick --> 6 <!-- Purpose: Test that value attribute gets rounded correctly w/various formats. --> 7 <!-- SpecCitation: Rec="XSLT" Version="1.0" type="OASISptr1" place="id(number)/ulist[1]/item[1]/p[1]/text()[5]" --> 8 <!-- SpecCitation: Rec="XSLT" Version="1.0" type="OASISptr1" place="id(number)/p[1]/text()[3]" --> 9 <!-- SpecCitation: Rec="XSLT" Version="1.0" type="OASISptr1" place="id(convert)/ulist[1]/item[1]/p[1]/text()[4]" --> 10 <!-- Scenario: operation="standard-XML" --> 11 12<xsl:template match="doc"> 13 <out> 14 <!-- Round down to 1 --> 15 <o><xsl:number format="1" value="1.1"/></o><xsl:text> </xsl:text> 16 <o><xsl:number format="01" value="1.02"/></o><xsl:text> </xsl:text> 17 <o><xsl:number format="A" value="1.003"/></o><xsl:text> </xsl:text> 18 <o><xsl:number format="a" value="1.0004"/></o><xsl:text> </xsl:text> 19 <o><xsl:number format="I" value="1.00005"/></o><xsl:text> </xsl:text> 20 <xsl:text> </xsl:text> 21 22 <!-- Round up to 7 --> 23 <s><xsl:number format="i" value="6.5000000000"/></s><xsl:text> </xsl:text> 24 <s><xsl:number format="1" value="6.51"/></s><xsl:text> </xsl:text> 25 <s><xsl:number format="01" value="6.501"/></s><xsl:text> </xsl:text> 26 <s><xsl:number format="A" value="6.5001"/></s><xsl:text> </xsl:text> 27 <s><xsl:number format="a" value="6.50001"/></s><xsl:text> </xsl:text> 28 <s><xsl:number format="I" value="6.500001"/></s><xsl:text> </xsl:text> 29 <xsl:text> </xsl:text> 30 31 <!-- Round away two decimal places --> 32 33 <n><xsl:number format="1" value="99.03"/></n><xsl:text> </xsl:text> 34 <n><xsl:number format="01" value="99.13"/></n><xsl:text> </xsl:text> 35 <n><xsl:number format="A" value="99.23"/></n><xsl:text> </xsl:text> 36 <n><xsl:number format="a" value="99.33"/></n><xsl:text> </xsl:text> 37 <n><xsl:number format="I" value="99.43"/></n><xsl:text> </xsl:text> 38 <xsl:text> </xsl:text> 39 <h><xsl:number format="i" value="99.50"/></h><xsl:text> </xsl:text> 40 <h><xsl:number format="1" value="99.53"/></h><xsl:text> </xsl:text> 41 <h><xsl:number format="01" value="99.63"/></h><xsl:text> </xsl:text> 42 <h><xsl:number format="A" value="99.73"/></h><xsl:text> </xsl:text> 43 <h><xsl:number format="a" value="99.83"/></h><xsl:text> </xsl:text> 44 <h><xsl:number format="I" value="99.93"/></h><xsl:text> </xsl:text> 45 <xsl:text> </xsl:text> 46 47 <!-- More edge cases --> 48 49 <t><xsl:number format="01" value="2.499"/></t><xsl:text> </xsl:text> 50 <t><xsl:number format="1" value="2.499999999"/></t><xsl:text> </xsl:text> 51 </out> 52</xsl:template> 53 54 55 <!-- 56 * Licensed to the Apache Software Foundation (ASF) under one 57 * or more contributor license agreements. See the NOTICE file 58 * distributed with this work for additional information 59 * regarding copyright ownership. The ASF licenses this file 60 * to you under the Apache License, Version 2.0 (the "License"); 61 * you may not use this file except in compliance with the License. 62 * You may obtain a copy of the License at 63 * 64 * http://www.apache.org/licenses/LICENSE-2.0 65 * 66 * Unless required by applicable law or agreed to in writing, software 67 * distributed under the License is distributed on an "AS IS" BASIS, 68 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 69 * See the License for the specific language governing permissions and 70 * limitations under the License. 71 --> 72 73</xsl:stylesheet> 74