Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 05cd670d8a02b2b4a0ffb1756f2e8308 > files > 10726

php-manual-zh-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>浮点型</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PHP 手册"
HREF="index.html"><LINK
REL="UP"
TITLE="类型"
HREF="language.types.html"><LINK
REL="PREVIOUS"
TITLE="整型"
HREF="language.types.integer.html"><LINK
REL="NEXT"
TITLE="字符串"
HREF="language.types.string.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PHP 手册</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="language.types.integer.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>章 11. 类型</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="language.types.string.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="language.types.float"
>浮点型</A
></H1
><P
>&#13;   浮点数(也叫浮点数,双精度数或实数)可以用以下任何语法定义:
   <DIV
CLASS="informalexample"
><P
></P
><A
NAME="AEN2926"
></A
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$a </font><font color="#007700">= </font><font color="#0000BB">1.234</font><font color="#007700">;<br /></font><font color="#0000BB">$a </font><font color="#007700">= </font><font color="#0000BB">1.2e3</font><font color="#007700">;<br /></font><font color="#0000BB">$a </font><font color="#007700">= </font><font color="#0000BB">7E-10</font><font color="#007700">;<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
><P
></P
></DIV
>
   形式上:
   <DIV
CLASS="informalexample"
><P
></P
><A
NAME="AEN2928"
></A
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
LNUM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[0-9]+<br />DNUM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)<br />EXPONENT_DNUM ( ({LNUM} | {DNUM}) [eE][+-]? {LNUM})</font>
</code></TD
></TR
></TABLE
><P
></P
></DIV
>
   浮点数的字长和平台相关,尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度(64
   位 IEEE 格式)。
  </P
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
><A
NAME="warn.float-precision"
></A
>浮点数精度</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;    显然简单的十进制分数如同 <TT
CLASS="literal"
>0.1</TT
> 或 <TT
CLASS="literal"
>0.7</TT
>
    不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,<TT
CLASS="literal"
>floor((0.1+0.7)*10)</TT
>
    通常会返回 <TT
CLASS="literal"
>7</TT
> 而不是预期中的
    <TT
CLASS="literal"
>8</TT
>,因为该结果内部的表示其实是类似 <TT
CLASS="literal"
>7.9999999999...</TT
>。
   </P
><P
>&#13;    这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的
    <TT
CLASS="literal"
>1/3</TT
> 变成了 <TT
CLASS="literal"
>0.3333333. . .</TT
>。
   </P
><P
>&#13;    所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用<A
HREF="ref.bc.html"
>任意精度数学函数</A
>或者 <A
HREF="ref.gmp.html"
>gmp 函数</A
>。
   </P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="language.types.float.casting"
>转换为浮点数</A
></H2
><P
>&#13;    如果希望了解有关何时和如何将字符串转换成浮点数的信息,请查阅“<A
HREF="language.types.string.html#language.types.string.conversion"
>将字符串转换为数值</A
>”一节。对于其它类型的值,其情况类似于先将值转换成整型,然后再转换成浮点。请参阅“<A
HREF="language.types.integer.html#language.types.integer.casting"
>转换为整型</A
>”一节以获取更多信息。自
    PHP 5 起,如果试图将对象转换为浮点数,会发出一条通知。
   </P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="language.types.integer.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>起始页</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="language.types.string.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>整型</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="language.types.html"
ACCESSKEY="U"
>上一级</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>字符串</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>