Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

打印报表时 参数传递后精度丢失的问题 #261

Closed
qiaolin-li opened this issue Mar 10, 2018 · 3 comments
Closed

打印报表时 参数传递后精度丢失的问题 #261

qiaolin-li opened this issue Mar 10, 2018 · 3 comments
Labels

Comments

@qiaolin-li
Copy link

首先呢,我希望问题得以解决后在关闭问题!!

  • 当前使用的UReport的具体版本号:

2.2.5

  • 遇到的问题描述:

我打印报表时传入了一个小数的参数,精度为小数位3位,传过去后发现精度丢失了。

我需要查询一个数额,查询达到他这一期数量的时间是那天 取的是result字段
image

我在工具里面测试的时候查询出来的是 BMTJ-1-1这一条数据,这是正常的,第一期的
bill_meter_total只有24306688.100 然后加上第二期的就满足了
image

然后我在报表打印中,他显示的是 2018年 03月 BMTJ-1-0 很明显 他取了BMTJ-1-0这条数据,可是这条数据比这个参数小了0.100 所以我怀疑这个参数精度可能被丢失了!
image

然后我做了个实验,
首先把参数改成 24306688.999 , 依然如此
image

当我把参数改成 24306689
image
就可以了!

写了这么多我发现 有个float .....
悲催。。还是留着给其他人踩坑的人一个小小的帮助把。

@qiaolin-li
Copy link
Author

qiaolin-li commented Mar 10, 2018

当我以为是Float的问题的时候,上帝又为我关上了这一扇窗!!!
image

改完后我发现 不仅仅是 24306688.200 不对了 ,连刚刚24306689 都不行了,
image

image

但是 24306690 居然可以,这个原理我就搞不清了, 我还是暂时用Integer把,至少他精度只是丢失个小数位,而float就不知道是什么情况了。
image

希望Jack 你查一查把,早日把Ureport完善。。

@youseries
Copy link
Owner

参数解析精度问题,最新版SNAPSHOT中已修复,你参数类型设置成float类型即可正确解析外部传入的带小数的值,请更新测试,谢谢。

@qiaolin-li
Copy link
Author

OK 下次在测试吧,问题不是很大

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants