首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

开发到现在发现一个VS2005 C# 的一个BUG吧 不知道有没有人碰到过(求版主进)解决方法

2012-03-13 
开发到现在发现一个VS2005 C# 的一个BUG吧 不知道有没有人碰到过(求版主进)定义一个float,或doublepoint的

开发到现在发现一个VS2005 C# 的一个BUG吧 不知道有没有人碰到过(求版主进)
定义一个float,或double   point   的对象   比如赋值是659.09173583984375   当我在程序运行时用即时窗口调出来查看时   ,大吃一惊   情况如下

  point.ToString()
"659.091735839844 "
point
659.09173583984375

我有这样一个Dictionary <float   or   double   ,StateofX_axis>   这里的key   用float   或double   类型来代替   当我要进行取值或是删除某个值时用   ContainsKey(key)     这里的key我是用point.ToString()   强制类型转换成float   或   double的   结果就是肯定找不到相匹配的,   不知道有没有人碰到过此事   有什么办法吗?


[解决办法]
不知道哦,没有试过

[解决办法]
Float 32位
Double 64位

精度不一样,做为Key是比较危险的事.
[解决办法]
decimal的精度最大,是28-29位,
楼主可以用decimal来代替float或double达到更精确的处理.

[解决办法]
这个不是bug 本来数据精度不一样。转换丢失精度很正常!
[解决办法]
这不是Bug,本来就是这样
[解决办法]
上面已有答案.
[解决办法]
浮点数的精度问题
[解决办法]
第一次听说用浮点数做Key。。。。
[解决办法]
学习
[解决办法]
.ToString( "G17 ");
.ToString( "R ");

[解决办法]
:)
[解决办法]
不是Bug,就是这样的

楼主仔细看看CLR原理就知道了
[解决办法]
为什么不先查一下MSDN再发贴呢


别说打击你,说这样的话挺傻的
[解决办法]
晕倒!
[解决办法]
地球人都知道了...
[解决办法]
是啊,不要轻易下结论(我也发过几次想当然的贴子!)
[解决办法]
晕. 这也叫BUG 啊?
一看就知道是TOSTRING 的问题.
你查看以下这个对象TOSTRING 的具体实现和要求 .
soaringbird说的非常好.
[解决办法]
这也叫Bug? 就不说答案吧, 你遇到这个问题要做的事情第一件就是查ToString()方法有没有什么说明,有,问题这不就解决了? 如果没有,那么就用反编译工具打开来看看怎么回事.....也解决了.

热点排行