我有一个webService,其方法采用decimal类型的参数。此参数必须有2个浮点位置 我该如何确保?
public void callMyWS(decimal d1) {
...
decimal d2 = Ensure2FloatingPointPlaces(d1);
proxy.MyWSmethod(d2);
}
MyWSmethod(decimal myDD) { ... }
MyWS方法对这两个地方进行了验证。所以:
如果“d1”是1.00 =>一切都很好。
如果“d1”是1 =>验证失败。
主要问题是d1是否类似整数
我读了一些关于“m”-suffix的内容。但是所有的例子都是常数,而且不是很有用......你也可以看到它不是转换为字符串的目标。
我们来看看xsd:
<xs:element name="MyWSmethod" type="tns:MyWSmethodType"/>
...
<xs:complexType name="MyWSmethodType">
<xs:sequence>
...
<xs:element name="myDecimal" type="myDecimalType"/>
...
</xs:sequence>
</xs:complexType>
...
<xs:simpleType name="myDecimalType">
<xs:restriction base="xs:decimal">
<xs:pattern value="[\-]?[0-9]+\.[0-9]{2}"/>
</xs:restriction>
</xs:simpleType>
因此,当您从xsd构建Web服务客户端时,您将受到2个浮点位置的限制。
答案 0 :(得分:0)
您可以使用Math.Round截断到两位小数,但无论如何都必须更新验证。
确保验证传递这些值: