⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn_文档中心_由 double 数据类型想到的.htm

📁 csdn10年中间经典帖子
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://www.csdn.net/develop/Read_Article.asp?id=27404 -->
<!--内容开始//--><HTML><HEAD><TITLE>CSDN_文档中心_由 double 数据类型想到的</TITLE>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK 
href="CSDN_文档中心_由 double 数据类型想到的.files/csdn.css" rel=stylesheet></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<DIV align=center>
<STYLE>.title0 {
	COLOR: #ffffff; FONT-FAMILY: arial; FONT-SIZE: 17px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.title2:link {
	COLOR: #000000; TEXT-DECORATION: none
}
A.title2:visited {
	COLOR: #000000; TEXT-DECORATION: none
}
A.title2:active {
	COLOR: #ff0000; TEXT-DECORATION: none
}
A.title2:hover {
	COLOR: #ff0000; TEXT-DECORATION: none
}
</STYLE>

<SCRIPT language=JavaScript>
<!--
function submitlog(sign)
{
	var types=document.alogon.type.options[document.alogon.type.selectedIndex].value;				
	if (document.alogon.name.value!="" && document.alogon.pass.value!="")
	{
		if (types!="1")
			document.alogon.action="http://www.csdn.net/member/logon.asp";
		else
			document.alogon.action="http://expert.csdn.net/member/logon.asp";
		if(sign)
			document.alogon.submit();
		//return true;
	}
	else
	{
		if (document.alogon.name.value=="")
			alert("请输入用户名!");
		if (document.alogon.pass.value=="")
			alert("请输入密码");
		return false;
	}
	return true;
}
function GetMyPass()
{
	if (document.alogon.name.value!="")
	{
		document.alogon.action="http://www.csdn.net/member/getpass.asp";
		document.alogon.submit();
	}
	else
	{
		alert("请在姓名输入框里输入用户名或注册EMAIL!");
	}	
}
// -->
</SCRIPT>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD bgColor=#004d99 height=25 width=20></TD>
    <TD bgColor=#004d99>&nbsp;&nbsp; <A 
      href="http://www.csdn.net/member/login.asp"><FONT color=#ffff33>登 
      录..</FONT></A> &nbsp;&nbsp; <A href="http://www.csdn.net/member/zc.asp" 
      target=_blank><FONT color=#ffff33>[注 册]</FONT></A> &nbsp;&nbsp; <A 
      href="http://www.csdn.net/member/login.asp"><FONT 
      color=#ffff33>忘记密码</FONT> </A>&nbsp;&nbsp; <A 
      href="http://www.csdn.net/member/logonout.asp"><FONT 
      color=#ffff33>注销登录</FONT> </A></TD>
    <TD align=right bgColor=#990000 width=20><IMG height=25 
      src="CSDN_文档中心_由 double 数据类型想到的.files/top_1.gif" width=20></TD>
    <FORM action=http://www.csdn.net/search_ok.asp method=post target=_blank>
    <TD align=right bgColor=#009999 width=250><FONT color=#ffffff><FONT 
      color=#ffffff><INPUT class=FormText_1 name=search size=15> <SELECT 
      class=FormText_1 name=type> <OPTION selected value=1>新闻标题</OPTION> 
        <OPTION value=2>软件名称</OPTION> <OPTION value=3>商品名称</OPTION> <OPTION 
        value=4>文档标题</OPTION> <OPTION value=6>职位名称</OPTION></SELECT> </FONT><INPUT class=td3 name=Submit type=submit value="搜 索">&nbsp; 
    </FONT></TD></FORM></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD align=middle height=70 width=150><IMG height=60 
      src="CSDN_文档中心_由 double 数据类型想到的.files/csdn.gif" width=120></TD>
    <TD align=middle width=470>
      <SCRIPT language=javascript>
	var rand = Math.random().toString(); 
	var ordval = parseInt(rand.substring(2,4)); 
	function Showad(width)
	{
		if(width=='468')
		{
				document.write("<a href='http://www.dearbook.com.cn/' target='_blank'><OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' WIDTH=468 HEIGHT=60><PARAM NAME=movie VALUE='/adv//468x60.swf'> <PARAM NAME=quality VALUE=high> <EMBED src='/adv//468x60.swf' quality=high border=0 WIDTH=468 HEIGHT=60 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'></EMBED></OBJECT></a>");
				return;
		}
		if(width=='120')
		{
				document.write("<a href='http://www.csdn.net/csdn/csdnClick.aspx?ad=Oracle-button1&adurl&adurl=http://www.oracle.com/global/cn/documentation/10g/index.html?content.html' target='_blank'><img src='/adv/develop/grid_computing_120x60_text1.gif' width=120 HEIGHT=60 border=0></a>");
				return;
		}
		return;
	}
Showad('468')</SCRIPT>
    </TD>
    <TD align=middle width=150>
      <SCRIPT>Showad('120')</SCRIPT>
    </TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD align=middle bgColor=#000000 colSpan=2 height=1 width=770></TD></TR>
  <TR>
    <TD align=middle bgColor=#004d99 height=28 width=150><FONT 
      class=title0>csdn.net</FONT></TD>
    <TD align=middle width=620>
      <SCRIPT src="CSDN_文档中心_由 double 数据类型想到的.files/navigation1.js"></SCRIPT>
    </TD></TR>
  <TR>
    <TD align=middle bgColor=#000000 colSpan=2 height=1 
  width=770></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD bgColor=#f3f9fc height=23 width=10></TD>
    <TD bgColor=#f3f9fc>
      <MARQUEE onmouseout=this.start() onmouseover=this.stop() scrollAmount=5 
      scrollDelay=80>
      <SCRIPT src="CSDN_文档中心_由 double 数据类型想到的.files/marquee.htm"></SCRIPT>
      </MARQUEE></TD>
    <TD align=right bgColor=#f3f9fc width=101>
      <SCRIPT>document.write("<img src=http://count.csdn.net/count/pageview1.asp?columnid=4&itemid=11 border=0 width=0 height=0>");</SCRIPT>
      <B>
      <SCRIPT language=JavaScript>
			<!--
			document.ns = navigator.appName == "Netscape"
			tmpDate = new Date();
			date = tmpDate.getDate();
			month= tmpDate.getMonth() + 1 ; 
			if(document.ns)
			{
				year1=tmpDate.getYear()
				year= year1.toString().substr(1,2);
			}
			else
				year= tmpDate.getYear();
			
			document.write(year);
			document.write(".");
			document.write(month);
			document.write(".");
			document.write(date);
			// -->
			</SCRIPT>
      </B>&nbsp;&nbsp;</TD></TR>
  <TR bgColor=#999999>
    <TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
      <SCRIPT src="CSDN_文档中心_由 double 数据类型想到的.files/microsoft.js"></SCRIPT>
    </TD>
    <TD align=middle width=620>
      <TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
        <TBODY>
        <TR bgColor=#ffffff>
          <TD align=middle height=10 width=50></TD>
          <TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A 
            href="http://www.csdn.net/develop/">文档中心</A> - <FONT 
            color=#003399>Visual C++</FONT>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399 height=10><FONT 
            color=#ffffff>标题</FONT></TD>
          <TD><B>&nbsp;&nbsp;&nbsp;&nbsp;由 double 
            数据类型想到的</B>&nbsp;&nbsp;&nbsp;&nbsp;sgnaw(原作) </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
          <TD width=500>&nbsp;&nbsp;&nbsp;&nbsp;数据类型,double</TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
      <TABLE border=0 width=600>
        <TBODY>
        <TR>
          <TD align=left><BR>
            <P>在解决一位网友做程序遇到的问题时,开始我百思不得其解,后来,经过进一步的分析和尝试才发现,原来并非算法的问题,而是出在 
            double 数据类型上,遂写此文,希望给有类似困惑的朋友们一点启发。</P>
            <P>先写一个程序,看看结果是什么:</P>
            <P>#include &lt;iostream&gt;<BR>using namespace std;</P>
            <P>int main()<BR>{<BR>&nbsp; double x = 0.000000;</P>
            <P>&nbsp; for (; x&lt;4.000000; x=x+0.100000);<BR>&nbsp; if ( 
            4.000000*x &gt; 16.000000 ) <BR>&nbsp;&nbsp;&nbsp; printf ("4x = %f, 
            x = %f\n", 4*x, x);</P>
            <P>&nbsp; return 0;<BR>}</P>
            <P>因为 4*x = 16,所以,在通常看来,这个程序它并不应该输出什么东西,可是事实上它却输出了:</P>
            <P>4x = 16.000000, x = 4.000000</P>
            <P>于是,我就在 printf 那儿设置一个断点,进入调试,会发现此时</P>
            <P>x = 4.0000000000000018</P>
            <P>如下图所示:</P>
            <P><IMG align=baseline alt="" border=0 hspace=0 
            src="CSDN_文档中心_由 double 数据类型想到的.files/CSDN_Dev_Image_2004-5-2240230.gif"></P>
            <P>但是,如果写个简单一点的却又是另外一种情况:</P>
            <P>#include &lt;iostream&gt;<BR>using namespace std;</P>
            <P>int main()<BR>{<BR>&nbsp; double x = 0.000000;<BR>&nbsp; 
            <BR>&nbsp; x += 0.100000;<BR>&nbsp; if ( x &gt; 0.100000 
            )<BR>&nbsp;&nbsp;&nbsp; printf ("x = %f\n", x);</P>
            <P>&nbsp; return 0;<BR>}</P>
            <P>经调试发现 x = 0.1000000000000001 而且,此时似乎又正常了,不输出任何东西。</P>
            <P>如果把 x&nbsp;自加 10 次&nbsp;0.100000 你会发现结果的 x 不是 1.000000 ,在 Visual 
            C++ 6.0 里的结果是 x = 0.99999999999999989,如果把它和 1&nbsp;去比较的话,它会显示比 1 
            小了。</P>
            <P>记得以前有个网友就报怨:“double 的范围是多大啊?MSDN 里关于 double 
            的英文表述看不明白...”,我看了一下,MSDN 上写的是:</P>
            <P>The double type contains 64 bits: 1 for sign, 11 for the 
            exponent, and 52 for the mantissa. Its range is +/–1.7E308 with at 
            least 15 digits of precision. </P>
            <P>意思是说,double 数据类型由 64 位构成,1 位标志位、11 位指数位、其余 52 位用来表示数字,范围是 
            +/–1.7E308 精度至少为 15 位。</P>
            <P>不过,要了解 double 的范围大小也可以写程序搞定了,比如:</P>
            <P>// DoubleRange.cpp 2004-04-10 WGF 
            Wuhan<BR>#include&lt;iostream&gt;<BR>#include&lt;limits&gt;</P>
            <P>using namespace std;</P>
            <P>int main()<BR>{<BR>&nbsp; cout &lt;&lt; "double range: " &lt;&lt; 
            numeric_limits&lt;double&gt;::min() <BR>&nbsp;&nbsp;&nbsp; &lt;&lt; 
            " " &lt;&lt; numeric_limits&lt;double&gt;::max() &lt;&lt; endl;</P>
            <P>&nbsp; return 0;<BR>}</P>
            <P>输出结果为:</P>
            <P>double range: 2.22507e-308 1.79769e+308</P>
            <P>所以,double 
            类型是不精确的,在进行大小判断时,不能把它与某个确切的值进行比较,而是应该给个范围;我们可以用程序的方式切实地了解一个数据类型的一些特性,这样既是一种锻炼又可以把知识点掌握得更加牢固。</P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>对该文的评论</FONT></TD>
    <TD align=middle>
      <SCRIPT src="CSDN_文档中心_由 double 数据类型想到的.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你没有登陆,无法发表评论。 请先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=27404">登陆</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A 
      href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A 
      href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 src="CSDN_文档中心_由 double 数据类型想到的.files/biaoshi.gif" 
      width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -