首页 新闻 搜索 专区 学院

为什么sql数据库中的单价是4.368,但是从数据库中取出来之后却成了4.3680000000030517578

0
悬赏园豆:5 [已解决问题] 解决于 2016-12-18 12:56

如题,现在数据库里是4.368,但是手机端显示的是4.3680000000030517578

简爱工作室的主页 简爱工作室 | 初学一级 | 园豆:11
提问于:2016-12-13 19:48
< >
分享
最佳答案
0

首先控制表字段数值类型的小数位,再次可以控制映射关系的小数位,还可以进行数值类型格式化。

收获园豆:5
jasondyoung | 菜鸟二级 |园豆:424 | 2016-12-13 21:49
其他回答(8)
0

很正常,尤其字宽对不上很容易造成这种问题。自己去学习一下计算机编码,比如float是怎么编码的,你就明白了。

花飘水流兮 | 园豆:12908 (专家六级) | 2016-12-13 20:08
0

float js输出时格式化

吴瑞祥 | 园豆:29185 (高人七级) | 2016-12-13 20:09
0

我就看看不说话,自己领悟

czd890 | 园豆:11882 (专家六级) | 2016-12-13 23:21
0

你要想正常显示,就格式化呗。

青语 | 园豆:1000 (小虾三级) | 2016-12-14 09:47
0

1=0.999999999999999

hahanonym | 园豆:1460 (小虾三级) | 2016-12-14 10:52
0

不要用浮点数,使用decimal

悦光阴 | 园豆:2251 (老鸟四级) | 2016-12-14 13:07
0

金额数据类型为money

kingreatwill | 园豆:383 (菜鸟二级) | 2016-12-14 16:22
0

如果题主用的是Java的话,用BigDecimal类就不会出现这样的问题。这样问题的原因就像机器表示不了所有的数,因为在电脑里数都是0和1存储的,所以有的数会出现近似值(虽然看起来很荒谬)。一般的科学计算大多是没问题,如果涉及多位小数,建议使用BigDecimal类。

letcafe | 园豆:434 (菜鸟二级) | 2016-12-26 12:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册