问题描述
通过.NET调用java的webservice,目前已经能够调用,但是java的接口中定义了一个BigDecimal类型的字段,通过导入wsdl的方式生成了.NET的接口代码中定义为decimal类型,C#中目前没有BigDecimal类型字段;给decimal类型字段赋值之后,java服务端无法读取该字段,而java的服务端代码我这边看不了。现在是怀疑两个字段类型的长度不一导致的。有没有朋友遇到过此问题,请指教!希望高手能够提供解决思路,多谢了!
解决方案
解决方案二:
C#Decimal的精度是29位BigDecimal是Java表示任意精度浮点数的类型显然,C#调用JavaWebService的时候,赋值Decimal类型的变量,理论上是没问题的。至于你说的Java服务器端无法读取该字段,这个应该是Javawebservice程序的问题。另外,webservice作为跨平台使用,不应该定义这种不同语言不公共的类型。
解决方案三:
BigDecimal类的加减乘除要不这样试试Decimal->String->BigDecimal,BigDecimal是拥有完整精度的比如10/3如果不设置小数点位数,它会一直计算到某个上限,然后抛出异常,你设置下保留小数点到几位试试。
解决方案四:
JSON一次性解决
时间: 2024-10-24 10:18:34