📄 00000003.htm
字号:
float a = 1000.0; <BR> cout << a - b << '\n'; <BR> } <BR> <BR>(附注,有些 C++ 环境下会印出 0.429993) <BR> <BR>声明:受进位/舍位/近似值之苦,其实并不是 C++ 的问题,而是电脑科学界的问 <BR>题。不过还是一直有人在 comp.lang.c++ 里发问,所以我给你一个答案意思一下。 <BR> <BR>答案:浮点数本来就是个近似值。在 IEEE 的 32 位元浮点数标准里,有 1 位元的 <BR>正负号,8 位元的指数,23 位元的假数。因为正规化後的二进位假数都会变成像是 <BR>1.xxxxx... 的型式,所以头一项的 1 不予计入,就能得到 24 位元的有效假数。 <BR>1000.43(以及其他很多很多数字)都不是 float 或 double 的表示法,其实 <BR>1000.43 的位元内容是这样子的('s' 代表正负号,'e' 代表指数,'m' 代表假数) <BR>: <BR> <BR> seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm <BR> 01000100011110100001101110000101 <BR> <BR>假数移位後变成 1111101000.01101110000101 或是 1000 + 7045/16384。 <BR>分数部份为 0.429992675781。 <BR>float 的假数占 24 位元,所以你只得到 16M 分之一的精确度。 <BR>double 有较高的精确度(53 位元的假数)。 <BR> <BR>========================== <BR>● 22B:其他环境下的琐事 <BR>========================== <BR> <BR>Q134:有任何 TeX 或 LaTeX 的巨集,能处理 "C++" 的留白效果(spacing)吗? <BR> <BR>有的,底下列出两个: <BR> <BR>\def\CC{C\raise.22ex\hbox{{\footnotesize +}}\raise.22ex\hbox{\footnotesize +}} <BR> <BR>\def\CC{{C\hspace{-.05em}\raisebox{.4ex}{\tiny\bf ++}}} <BR> <BR>======================================== <BR> <BR>Q135:在哪儿可拿到 C++2LaTeX 这个 C++原始码的 LaTeX 美编工具(pretty <BR> printer)? <BR> <BR>这儿列出一些 ftp 地点: <BR> <BR>Host aix370.rrz.uni-koeln.de (134.95.80.1) Last updated 15:41 26 Apr 1991 <BR> Location: /tex <BR> FILE rw-rw-r-- 59855 May 5 1990 C++2LaTeX-1.1.tar.Z <BR>Host utsun.s.u-tokyo.ac.jp (133.11.11.11) Last updated 05:06 20 Apr 1991 <BR> Location: /TeX/macros <BR> FILE rw-r--r-- 59855 Mar 4 08:16 C++2LaTeX-1.1.tar.Z <BR>Host nuri.inria.fr (128.93.1.26) Last updated 05:23 9 Apr 1991 <BR> Location: /TeX/tools <BR> FILE rw-rw-r-- 59855 Oct 23 16:05 C++2LaTeX-1.1.tar.Z <BR>Host iamsun.unibe.ch (130.92.64.10) Last updated 05:06 4 Apr 1991 <BR> Location: /TeX <BR> FILE rw-r--r-- 59855 Apr 25 1990 C++2LaTeX-1.1.tar.Z <BR>Host iamsun.unibe.ch (130.92.64.10) Last updated 05:06 4 Apr 1991 <BR> Location: /TeX <BR> FILE rw-r--r-- 51737 Apr 30 1990 <BR> C++2LaTeX-1.1-PL1.tar.Z <BR>Host tupac-amaru.informatik.rwth-aachen.de (192.35.229.9) <BR>Last updated 05:07 18 Apr 1991 <BR> Location: /pub/textproc/TeX <BR> FILE rw-r--r-- 72957 Oct 25 13:51 C++2LaTeX-1.1-PL4.tar.Z <BR>Host wuarchive.wustl.edu (128.252.135.4) Last updated 23:25 30 Apr 1991 <BR> Location: /packages/tex/tex/192.35.229.9/textproc/TeX <BR> FILE rw-rw-r-- 49104 Apr 10 1990 C++2LaTeX-PL2.tar.Z <BR> FILE rw-rw-r-- 25835 Apr 10 1990 C++2LaTeX.tar.Z <BR>Host tupac-amaru.informatik.rwth-aachen.de (192.35.229.9) <BR>Last updated 05:07 18 Apr 1991 <BR> Location: /pub/textproc/TeX <BR> FILE rw-r--r-- 74015 Mar 22 16:23 C++2LaTeX-1.1-PL5.tar.Z <BR> Location: /pub <BR> FILE rw-r--r-- 74015 Mar 22 16:23 C++2LaTeX-1.1-PL5.tar.Z <BR>Host sol.cs.ruu.nl (131.211.80.5) Last updated 05:10 15 Apr 1991 <BR> Location: /TEX/TOOLS <BR> FILE rw-r--r-- 74015 Apr 4 21:02x C++2LaTeX-1.1-PL5.tar.Z <BR>Host tupac-amaru.informatik.rwth-aachen.de (192.35.229.9) <BR>Last updated 05:07 18 Apr 1991 <BR> Location: /pub/textproc/TeX <BR> FILE rw-r--r-- 4792 Sep 11 1990 C++2LaTeX-1.1-patch#1 <BR> FILE rw-r--r-- 2385 Sep 11 1990 C++2LaTeX-1.1-patch#2 <BR> FILE rw-r--r-- 5069 Sep 11 1990 C++2LaTeX-1.1-patch#3 <BR> FILE rw-r--r-- 1587 Oct 25 13:58 C++2LaTeX-1.1-patch#4 <BR> FILE rw-r--r-- 8869 Mar 22 16:23 C++2LaTeX-1.1-patch#5 <BR> FILE rw-r--r-- 1869 Mar 22 16:23 C++2LaTeX.README <BR>Host rusmv1.rus.uni-stuttgart.de (129.69.1.12) <BR>Last updated 05:13 13 Apr 1991 <BR> Location: /soft/tex/utilities <BR> FILE rw-rw-r-- 163840 Jul 16 1990 C++2LaTeX-1.1.tar <BR> <BR>======================================== <BR> <BR>Q136:该到哪里取得 "tgrind" 这个 C++/C/etc 的原始码美编工具? <BR> <BR>"tgrind" 读入 C++ 原始档案,并输出能让 Unix 印表机印出美观文件的东西。它常 <BR>会伴随在 TeX 和 LaTeX 的套件里;请找找这个目录: <BR> "...tex82/contrib/van/tgrind" 。 由 Jerry Leichter 所做更新的版本,可在 <BR>venus.ycc.yale.edu in [.TGRIND] 里找到。 <BR> <BR>======================================== <BR> <BR>Q137:有给 GNU emacs 编辑器用的 C++-mode 吗?有的话,该怎麽拿? <BR> <BR>Yes,有一个给 GNU emacs 用的 C++-mode。 <BR> <BR>最新、最好的 C++-mode(以及 c-mode)版本是 cc-mode.el 档,是 Detlef & <BR>Clamen 版本的延伸。Emacs 里头有一个了,较新的则在 elisp 里面。 <BR> <BR>======================================== <BR> <BR>Q138:我要到哪儿得到和作业系统相关的 FAQs( 譬如:BC++、DOS、Windows 等等 <BR> )? <BR> <BR>请参考: <BR> * comp.os.msdos.programmer <BR> * comp.windows.ms.programmer <BR> * comp.unix.programmer <BR> <BR>[如果您有 BC++、VC++ 的 email address,或是 Semantic C++ 的臭□清单或可供 <BR>讨论的 mailing list,请告诉我该如何加入,我会在这儿提出的。] <BR> <BR>======================================== <BR> <BR>Q139:为什麽我的 DOS C++ 程式说 "Sorry: floating point code not linked" <BR> “抱歉,浮点运算程式码未连结进来”? <BR> <BR>编译器会试著节省执行档的大小,所以除非必要,否则不引入浮点数→字串格式转换 <BR>的副程式,可是有时候它会猜错,就会产生上述的错误讯息了。解决法:(1) 使用 <BR><iostream.h> 而不要用 <stdio.h>,或是 (2) 在您程式的某个地方,置入如下的函 <BR>数(但是不要真的去呼叫它!): <BR> <BR> static void dummyfloat(float *x) { float y; dummyfloat(&y); } <BR> <BR>请参考关於 stream I/O 的 FAQ项目,有提到更多使用 <iostream.h> vs <stdio.h> <BR>的理由。 <BR> <BR>======================================== <BR> <BR>Q140:为什麽当我没执行 BC45 IDE 的话,BC++ 做出来的 Windows 应用程式就不能 <BR> 用? <BR> <BR>用 BC++ 写 Windows 应用程式,如果当 BC45 IDE 正在执行时,你的程式很正常; <BR>待会儿当 BC45 IDE 关掉了,而你的程式却在建立视窗时产生了个 exception 的话 <BR>,就把底下这行程式加到你的应用程式类别 ("YourApp::InitMainWindow()") 里头 <BR>的 InitMainWindow() 内: <BR> <BR> EnableBWCC(TRUE); <BR> <BR>【译注】这是因为你用 BC++ 写的应用程式,可能会自动用到 bwcc*.dll,刚好 <BR> BC++ 的 IDE 也会用到它,所以两者并存的话,BWCC 已先被 IDE 载入了。 <BR> 若是 IDE 未执行,则 BWCC 未被载入,你就得用上面那一行程式来通知 <BR> OWL 去载入它。 <BR> <BR>== comp.lang.c++ FAQ 结束 ========================= <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -