float小数位数的问题

scjyjl 2007-08-03 11:26:43
我在SQL SERVER一表中一个float类型的列,我在程序datagridview中输入90.1,在更新到表里时,给我变成了90.0999984741211,请问怎么才能让它不这门变啊,我录多少,他就存成多少,或则怎么指定float列的小数位数啊,我一般只会用到两位小数.
...全文
533 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
godgreat 2007-08-03
  • 打赏
  • 举报
回复
沙发沙发,帮忙顶
viena 2007-08-03
  • 打赏
  • 举报
回复
不可能,浮点数本身不精确,而有限十进制小数作为二进制小数可能是无限小数
90.1即使这种情况,其实二进制有限小数很少,只有2的n次方分之一的组合,才是二进制有限小数,在你把这个数存到计算机里的时候,它的值已经变了

输出的时候,指定格式就可以了,让他舍入一下,保留1位小数
bdbox@qq.com 2007-08-03
  • 打赏
  • 举报
回复
为什么不用decimal类型呢?它可以控制位数啊。
scjyjl 2007-08-03
  • 打赏
  • 举报
回复
我怀疑是float.Parse(string)时就改变了,那个float.Parse怎么用参数才让他转换时不变原数值啊。

110,534

社区成员

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

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

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