Xquery 转换十进制数字结果中的值

Xquery 转换十进制数字结果中的值,xquery,Xquery,寻找您的专家帮助,我得到一个数字为2,但希望它显示为2.0,如果它是2.5,那么这是好的,我只想显示2.5 我使用的是xquery版本“1.0” 我正在尝试使用格式编号功能,但1.0版似乎不支持这种功能 <ns0:value>{data($InputNumber/ns0:count)}</ns0:value> {data($InputNumber/ns0:count)} 如果计数为2 然后它应该显示为 <ns0:value>2.0</ns0:valu

寻找您的专家帮助,我得到一个数字为2,但希望它显示为2.0,如果它是2.5,那么这是好的,我只想显示2.5

我使用的是xquery版本“1.0”

我正在尝试使用格式编号功能,但1.0版似乎不支持这种功能

<ns0:value>{data($InputNumber/ns0:count)}</ns0:value>
{data($InputNumber/ns0:count)}
如果计数为2 然后它应该显示为

<ns0:value>2.0</ns0:value>
2.0
如果count是一个十进制值,如2.5,那么它应该是这样的


请告知

您应该能够检查输入字符串是否包含一个点,否则在末尾追加
.0

let $in:=data($InputNumber/ns0:count)
return if (contains($in, '.')) then $in else concat($in, '.0')

该输入是否使用支持模式的XQuery 1,以便
data($InputNumber/ns0:count)
返回一个数值?或者它是非类型化的输入,以便您获得xs:untypedAtomic?在第一种情况下,您可以简单地测试
让$c:=data($InputNumber/ns0:count)返回if($c xs:integer实例),然后concat($c,.0')否则$c
,在第二种情况下,您仍然可以使用
castable as
例如
让$c:=data($InputNumber/ns0:count)返回if($c castable as xs:integer),然后concat($c,.0'))else$c
。谢谢您的帮助,但是我们在Xquery中没有任何内置函数可以实现这一点。好像我们有电话号码format@kumarb我不知道你的意思是什么,
contains
concat
都是在XQuery 1.0中实现的(&in)