将数字转换为适当的格式

时间:2017-03-18 15:56:07

标签: string xslt xpath numbers

我从生成的代码中获得输出,格式为res 2 ^ -2:

/*!< @VAR_NAME VehSpd @RES 2^-2 @MIN 0 @MAX 182.5 */

我想得到0.250而不是2 ^ -2为:

/*!< @VAR_NAME VehSpd @RES 0.250 @MIN 0 @MAX 182.5 */
在XSL中,他们将行的格式设置为:

<xsl:value-of select="concat( $newline, ' /*!&lt;',
' @VAR_NAME ', $curr_node/@name,@struct-component-name,
' @RES ',  @res,
' @MIN ',  @min-val,
' @MAX ',  @max-val)"/>

是否将格式2 ^ -2转换为显示为0.250。 我试过数字(@res),但它给了我NaN。 任何的想法? 顺便说一下,我不确定@res是数字还是字符串

1 个答案:

答案 0 :(得分:0)

property name="createdBy" column="createdBy" fieldtype="one-to-one" cfc="user" inversejoincolumn="userid"; property name="modifiedBy" column="modifiedBy" fieldtype="one-to-one" cfc="user" inversejoincolumn="userid"; 是数学表达式的字符串值,而不是数字。您需要进行数学计算才能生成正确的数字。

如果您可以使用XSLT / XPath 3.0,则可以使用方便的math:pow()功能。你可以简单地使用:

2^-2

否则,您需要找到一种方法来解析它并完成工作。 Dimitre NovatchevFXSL库提供了可能有用的模板。该网站使用pow模板提供example。像这样:

math:pow(number(substring-before(@min-val, "^")), number(substring-after(@min-val, "^")))