jQuery MiniUI

 找回密码
 立即注册
查看: 17533|回复: 35
打印 上一主题 下一主题

json反序列化之后小数四舍五入 [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2014-4-14 16:05:29 |只看该作者 |倒序浏览
div field="xxx" decimalplaces="3" datatype="float" headeralign="center" align="right">
                                </div>
用getData()提取数据到后台,用json.net反序列化为datatable的时候,如果第一行的数字是0.000或者1.000这样的整数,那么当前列会被认为是整数,所有的小数会被四舍五入为整数。

Rank: 8Rank: 8

沙发
发表于 2014-4-14 16:16:06 |只看该作者
json对数据是不会做处理的,你原本数据多少,就是多少,数据的处理只能放到后期去处理.

Rank: 6Rank: 6

板凳
发表于 2014-4-14 16:30:13 |只看该作者
lost 发表于 2014-4-14 16:16
json对数据是不会做处理的,你原本数据多少,就是多少,数据的处理只能放到后期去处理. ...

数据库的数据是有小数的,但是经过了grid之后,再取就会变成没有小数了,grid能怎么设置,让getData取到的数是decimalplace这么多个小数的。这样序列化就不会有问题了。

Rank: 8Rank: 8

地板
发表于 2014-4-14 16:43:03 |只看该作者
q123126 发表于 2014-4-14 16:30
数据库的数据是有小数的,但是经过了grid之后,再取就会变成没有小数了,grid能怎么设置,让getData取到 ...

表格有显示和数据2部分.我们的保留是对显示的处理,但是用户的原始数据我们肯定不会轻易做改动的.

也就是用户给我们什么,就是什么,如果你非得要数据上保留,那你应该自己处理完了,再把保留后的数据返回给表格

Rank: 6Rank: 6

5#
发表于 2014-4-14 16:47:30 |只看该作者
factory 发表于 2014-4-14 16:43
表格有显示和数据2部分.我们的保留是对显示的处理,但是用户的原始数据我们肯定不会轻易做改动的.

也就是 ...

那就奇怪了,我取到的getData就已经是变化了。

Rank: 8Rank: 8

6#
发表于 2014-4-14 17:14:16 |只看该作者
q123126 发表于 2014-4-14 16:47
那就奇怪了,我取到的getData就已经是变化了。

你这样,你用firebug或者其他的浏览器工具,看看,是不是你后台返回的时候的数据,就已经是被保留过小数了

Rank: 6Rank: 6

7#
发表于 2014-4-14 17:45:28 |只看该作者
factory 发表于 2014-4-14 17:14
你这样,你用firebug或者其他的浏览器工具,看看,是不是你后台返回的时候的数据,就已经是被保留过小数了 ...

检查过了,数据库我是默认4位小数,没有特殊处理,显示3位小数,是decimalPlace设置的。
然后提交,得到得json字符串如下
[{"barcode":"PKCC048","gold_no":"","stone_no":"21","kind_no":"05","goodsmode":"5","qty":1,"store_qty":1,"oldbarcode":"PKCC048","prod_name":"xxx","goods_wgt":0,"sale_amt":0,"_id":4736,"_uid":4736,"_state":"added"}]

所有数字类型应该都是四位小数,但是这里的goods_wgt变成了0,其他数值类型也是一样。结果再反序列化的时候,就出问题了。只要小数后有数字的都没有了。

Rank: 8Rank: 8

8#
发表于 2014-4-14 17:59:29 |只看该作者
q123126 发表于 2014-4-14 17:45
检查过了,数据库我是默认4位小数,没有特殊处理,显示3位小数,是decimalPlace设置的。
然后提交,得到 ...

"_state":"added"

你这条数据是新增的,所有的数据必定是你给他的, goods_wgt这个值你是怎么设置的?

Rank: 6Rank: 6

9#
发表于 2014-4-14 18:11:07 |只看该作者
本帖最后由 q123126 于 2014-4-14 18:22 编辑
factory 发表于 2014-4-14 17:59
"_state":"added"

你这条数据是新增的,所有的数据必定是你给他的, goods_wgt这个值你是怎么设置的? ...

               grid1.setUrl('xxx');
                grid1.load(param);
json数据我检查过了没问题。什么都不改变的情况下,
mini.encode(grid1.getData())就已经变了。

Rank: 8Rank: 8

10#
发表于 2014-4-14 18:21:58 |只看该作者
q123126 发表于 2014-4-14 18:11
grid1.setUrl('xxx');
                grid1.load(param);
json数据我检查过了没问题。 ...

把你的表格页面提供下再提供几条数据,我们看下
打包在高级模式下上传

Archiver|普加软件

GMT+8, 2024-11-25 22:27 , Processed in 1.033139 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部