完善BigDecimal的转换
diff --git a/dubbo/codec/decoder.py b/dubbo/codec/decoder.py
index 8ed126c..0585c42 100644
--- a/dubbo/codec/decoder.py
+++ b/dubbo/codec/decoder.py
@@ -223,11 +223,12 @@
             result[field_name] = field_value
 
         path = self.paths[ref]
-        if path in ('java.math.BigDecimal', 'java.math.BigInteger'):
-            # 从变量value中获取到真正的数值
+        if path == 'java.math.BigDecimal':
             result = float(result['value'])
-            if result == int(result):
-                result = int(result)
+            self.objects[-1] = result or 0
+        elif path == 'java.math.BigInteger':
+            result = int(result['value'])
+            self.objects[-1] = result
 
         return result
 
diff --git a/tests/run_test.py b/tests/run_test.py
index bff5745..ac3ecef 100644
--- a/tests/run_test.py
+++ b/tests/run_test.py
@@ -36,8 +36,8 @@
         zk = ZkRegister('172.19.71.7:2181')
         dubbo_cli = DubboClient('com.qianmi.pc.es.api.EsGoodsQueryProvider', zk_register=zk)
         product_request = Object('com.qianmi.pc.es.api.request.EsGoodsListByIdStringRequest', values={
-            'chainMasterId': 'A857713',
-            'idString': 'NotUsed:g10346'
+            'chainMasterId': 'A000000',
+            'idString': 'NotUsed:g10529'
         })
         result = dubbo_cli.call('listByIdString', product_request)
         pretty_print(result)