为什么还要long C#中long有64个字节,double也有64个字节,但double的表示范围比long表示的要大很多那么我们为什么还需要long这个类型呢?急等高手解决! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 long是精确的整数,double是近似数 老大,不是64字节,是8字节,64位,搞清楚好不好,long是整形的,double是浮点型的,完全不一样 long 是长整形,double 是浮点型各有各用途。 double和long int都是64位,但是一个表示的是浮点数,一个表示的是整数,完全不同的概念和bit使用方式 。 我是说double类型的范围能够包括到long类型所能表示的范围。而且double的范围比long精度更高!存在long的意义究竟在哪里,我刚刚找出了五点原因! 1楼回答了long是精确的整数,double是近似数long 1+1=2; 每个cpu(分AMD,Intel, 32位, 64位)的运行都一样的,另外还有可能每种语言的定义啊double 1.0+1.0 就有可能出现诡异的情况了 特别是float是非常有可能 1.0+1.0 !=2 的具体用什么数字相加会出现诡异情况就不知道了上次还有人在喊.net的 bug 什么的结果被喷了 10楼v5,还有就是double类型的处理开销大,对只需要简单整形操作情况下得不偿失,不如定义一个long类型。还有就是在int+double等类型的时候会自动向上转型,这样int是32位,double是64位,必然会造成内存空间的拼凑。(int和double在内存中都是连续的空间)所以造一个也是64位的整形给自己转型减少开销。还有一个编译平台不支持double。这只是个人的一点愚见! 你去试试这个输出是true还是falsedouble a = 3.0d / 7d;double b = (3.0d / 70d) * 10d;Console.WriteLine(a == b); 找到一个超底层的知识(我有点无聊的说)http://4develop.in/page/Delphi/20110701_17_01b3977b-1639-40cb-bef7-efabbd1c589f/%E6%B5%AE%E7%82%B9%E6%95%B0%E7%9B%B8%E5%8A%A0%E7%9A%84%E7%81%B5%E5%BC%82%E9%97%AE%E9%A2%98%E6%B1%82%E5%8A%A9.html把分数给我把 谢谢 请教FILETIME转成DataTime 一小段代码,望指正。 安装包制作问题 关于C#的一个小问题 C#如何通过Outlook发送会议请求 局域网中想做一个UKEY和CA认证。。。。。。 怎样下载网页的全部相关文件并存入到数据库中.包括图片,FLASH 关于数据库查询 serialport类写了个串口通信,但是现在不能触发接收事件DataReceive。麻烦高手指教在线等待啊 .net下如何实现XP风格窗体? C#中如何调用.OCX中的函数? 菜鸟求C#进行2进制文件操作的问题
1楼回答了
long是精确的整数,double是近似数long 1+1=2; 每个cpu(分AMD,Intel, 32位, 64位)的运行都一样的,另外还有可能每种语言的定义啊
double 1.0+1.0 就有可能出现诡异的情况了
特别是float
是非常有可能 1.0+1.0 !=2 的具体用什么数字相加会出现诡异情况就不知道了上次还有人在喊.net的 bug 什么的
结果被喷了
还有就是double类型的处理开销大,对只需要简单整形操作情况下得不偿失,不如定义一个long类型。
还有就是在int+double等类型的时候会自动向上转型,这样int是32位,double是64位,必然会造成内存空间的拼凑。(int和double在内存中都是连续的空间)所以造一个也是64位的整形给自己转型减少开销。
还有一个编译平台不支持double。
这只是个人的一点愚见!
double a = 3.0d / 7d;
double b = (3.0d / 70d) * 10d;Console.WriteLine(a == b);
http://4develop.in/page/Delphi/20110701_17_01b3977b-1639-40cb-bef7-efabbd1c589f/%E6%B5%AE%E7%82%B9%E6%95%B0%E7%9B%B8%E5%8A%A0%E7%9A%84%E7%81%B5%E5%BC%82%E9%97%AE%E9%A2%98%E6%B1%82%E5%8A%A9.html把分数给我把 谢谢