小数存入oracle数据库的float 类型字段后小数点后面多了好多位数

hqm475 2014-12-18 11:31:40
在C#里面通过OracleParameter 参数的形式设置对应数据库的float字段,输入的数据比如是0.43,但数据库存的却是0.439999997615814,C#代码如下:

parameters = new OracleParameter[] {
new OracleParameter(":DISCOUNT", OracleType.Float, 22),
};
parameters[0].Value = Math.Round(model.Discount, 2); //model.Discount 为decimal类型



大神们请指导下啊!!!
...全文
1865 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2014-12-18
  • 打赏
  • 举报
回复
正常,那是因为浮点数特殊的存储方式造成的
hqm475 2014-12-18
  • 打赏
  • 举报
回复
引用 4 楼 lc2737 的回复:
[quote=引用 3 楼 hqm475 的回复:] 我只想存多少数据库里就是多少,该怎么处理?我不想修改数据库的字段类型为varchar 类型。
n你的Float精度是多少?[/quote] 我n没有设置,就直接是float。
ajaxfeifei 2014-12-18
  • 打赏
  • 举报
回复
这种事情没办法避免,如果你打死都要用float就哭吧,再给你看一篇。 http://www.itpub.net/thread-1278788-1-1.html
ajaxfeifei 2014-12-18
  • 打赏
  • 举报
回复
引用 3 楼 hqm475 的回复:
我只想存多少数据库里就是多少,该怎么处理?我不想修改数据库的字段类型为varchar 类型。
n你的Float精度是多少?
hqm475 2014-12-18
  • 打赏
  • 举报
回复
我只想存多少数据库里就是多少,该怎么处理?我不想修改数据库的字段类型为varchar 类型。
ajaxfeifei 2014-12-18
  • 打赏
  • 举报
回复
你这种情况是存在的,建议你看看别人的经验: http://www.cnblogs.com/wylaok/archive/2012/11/09/2762243.html

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧