以下は、ゼロの (潜在的に無制限の) 文字列を必要としない単純な XSLT 1.0 ソリューションです。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:param name="pNum" select="0.012877"/>
<xsl:param name="pPrec" select="3"/>
<xsl:template match="/">
<xsl:value-of select="substring-before(concat($pNum, '.'), '.')"/>
<xsl:if test="contains($pNum, '.')">
<xsl:text>.</xsl:text>
<xsl:value-of select="substring(substring-after($pNum,'.'), 1, $pPrec)"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
この変換が任意の XML ドキュメント (使用されていない) に適用されると、必要な正しい結果が生成されます。
0.012