为了账号安全,请及时绑定邮箱和手机立即绑定

关于C#中double数值问题!!!

关于C#中double数值问题!!!

C#
Smart猫小萌 2018-08-02 08:06:30
onst double num = 1.618033988749895;            double re;            string te;            te = string.Format("{0}", num);            re = double.Parse(te);            System.Console.WriteLine("{0}: re != num", re != num);                        te = string.Format("{0:R}", num);            re = double.Parse(te);            System.Console.WriteLine("{0}: re = num",re == num);运行结果:True:re !=num               True: re== num我就有疑问了,num被赋值后,输出时会丢失一位,即丢失5,那,num的值在存入计算机中时,是按15位的存的还是16位存的,也就是最后一位5有没有被存入?假如存入了5,那么是不是在一般情况下使用num的值时不包括5啊,比如输出num值时输出的数不包括5。使用“{0:R}”时,会与原来数值相比较,原来的数是指存入的数还是还是代码中的数啊?
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

存进去了,只是读的时候没读出来

查看完整回答
反对 回复 2018-08-07
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

你也说了,只有在输出的时候才少一位。那在内存中还是1.618033988749895,比的时候自然相等。

查看完整回答
反对 回复 2018-08-07
  • 2 回答
  • 0 关注
  • 765 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信