commit | 6d112471d5aef0b952fa5f0a62bf97e5a52e16f0 | [log] [tgz] |
---|---|---|
author | ken.lj <ken.lj.hz@gmail.com> | Sun Nov 17 14:14:19 2019 +0800 |
committer | GitHub <noreply@github.com> | Sun Nov 17 14:14:19 2019 +0800 |
tree | ff2a56d8a8b1680fe52ab993d5a72e2fbb03570f | |
parent | 6a0cd3c6014f5fa242a93a29c77ede7080e38a9e [diff] | |
parent | a8cb0b22e9b78f7792bc0080fdc755489e9fda6c [diff] |
Merge pull request #12 from CrazyHZM/floatBug, fix float accuracy issues
diff --git a/src/main/java/com/alibaba/com/caucho/hessian/io/BasicSerializer.java b/src/main/java/com/alibaba/com/caucho/hessian/io/BasicSerializer.java index 6d5aee9..4b9f359 100644 --- a/src/main/java/com/alibaba/com/caucho/hessian/io/BasicSerializer.java +++ b/src/main/java/com/alibaba/com/caucho/hessian/io/BasicSerializer.java
@@ -106,6 +106,8 @@ break; case FLOAT: + out.writeDouble(Double.parseDouble(String.valueOf(((Number) obj).floatValue()))); + break; case DOUBLE: out.writeDouble(((Number) obj).doubleValue()); break;
diff --git a/src/test/java/com/alibaba/com/caucho/hessian/io/HessianJavaSerializeTest.java b/src/test/java/com/alibaba/com/caucho/hessian/io/HessianJavaSerializeTest.java index d9b46c8..abe66a9 100644 --- a/src/test/java/com/alibaba/com/caucho/hessian/io/HessianJavaSerializeTest.java +++ b/src/test/java/com/alibaba/com/caucho/hessian/io/HessianJavaSerializeTest.java
@@ -83,4 +83,12 @@ Assert.assertEquals("tom", serializedUser.getUserName()); } + @Test + public void testFloat() throws Exception { + Float fData = 99.8F; + Double dData = 99.8D; + Assert.assertEquals(dData, baseHessianSerialize(fData)); + Assert.assertEquals(dData, baseHessian2Serialize(fData)); + } + }