b97902HW 板


LINE

‧什麽是 double‧   double 也是一种资料型态,就如同熟悉的 int 一样。不同的是,int 储存整数资料 ,而 double 放浮点数(即有小数点)。使用上和 int 类似,唯 int 使用的 %d 必须改 为 %lf。这里一并列出所有目前用过的资料型态该用的代码当作复习: int→%d double→%lf long long→DevC++ 里用 %I64d 批改娘及 ACM 用 %lld   最後补充一些厉害的用法,直接举例说明: #include <cstdio> main(){ int a=38; double b=38.0; printf("%9d\n",a); // 38,即总位数 9 位 printf("%09d\n",a); //000000038,总位数 9 位,不足前方补 0 printf("%.3lf\n",b); //38.000 ,只印小数点後 3 位 printf("%9.3lf\n",b); // 38.000,含整数、小数点、小数共 9 位 printf("%09.3lf\n",b); //00038.000,共 9 位,不足前方补 0 } 提醒一下,诸如 %.3lf 这种都是四舍五入到小数点後三位。 ‧科学计号‧ (「^」为次方符号,10^5 = 100000)   1e9 = 10^9 1e4 = 10^4 1e-5 = 10^(-5) = 0.00001 1e-10 = 10^(-10) = 0.0000000001 ‧浮点数误差‧   用到 double 时是无论如何都得提到浮点数误差的,不过这里只打算乱讲。简单来说 是这样,当你放例如 5 在变数里时,电脑有可能存 4.9999999999999999999999999999。 原则上是没有差别,但有时候会造成影响。使徒三是个好例子,很多人写一写可能会发现 印出来的东西竟然有 -0.000,其原因正是因为变数值为像 -0.00000000000002147483647 这种後面接了一些怪东西的值(只是随便打的)。因此输出时认为它不是 0,而是一个很 小很小的负数,所以取 3 位小数时印出 -0.000。   解法方法很简单,我们加一个很小很小又不至於太小的数给它,例如 1e-10。 -0.00000000000002147483647 +0.0000000001 ------------------------------ 0.00000000009997852516353   这样一来,用 %.3lf 印出时,答案就会是 0.000 了。 ‧数学函式‧ (使用前需先 #include <math.h>) 首先,π = 2.0 * acos(0.0) = 3.1415926535897932384626433832795。 ↑这是确确实实的 0.0 而不是表情符号   sin()、cos() 等等函数传入的参数必须使用弪度而非角度,转换方法高中数学课应 有提过,总之:弪度 = 角度 * π / 180。 ‧结语‧   使徒三 Go。 其实写这篇是因为大家都很厉害或是我很失败,总之使徒一、二几乎没有人问我,让 我有种青年失业的感觉,因此希望这能有任何一点点帮助。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.242.109
1F:推 humanlin:很有帮助的~推~~ 09/30 20:13
2F:推 penlininkshs:X长哭哭ˊˋ 可以只推最後一段吗??加油 你还有174 09/30 21:40
3F:→ iForests:= =........................... 09/30 21:42
4F:推 r44: 推X长,大家快来问X长使徒怎麽x! 09/30 22:04
5F:推 benck:超有帮助!! 如果本来没有学过double 没看这个的话... 09/30 22:21
6F:→ benck:使徒三会出问题...(像我一样= =) 09/30 22:21
7F:推 LoganChien:#include <float.h> 之後,你可以用 DBL_MAX 代表极大 09/30 22:40
8F:→ LoganChien:的值(double 可以表示的最大值) 09/30 22:40
9F:推 LoganChien:检查二个 double 是否相同,最好用下面的公式,以减少 09/30 22:48
10F:→ LoganChien:意外。﹝误差造成的﹞ 09/30 22:48
11F:→ LoganChien:fabs(a - b) < DOUBLE_PRECISION_EPSILON 09/30 22:49
12F:→ LoganChien:let DOUBLE_PRECISION_EPSILON = 1e-9. 09/30 22:49
13F:→ godgunman:二楼X宇乱入 XDDDDD 09/30 22:54
14F:推 benck:上面那六行看不懂耶 可以详细解释吗 谢谢 09/30 22:56
15F:推 rewqrewwq:想判断a<b的话 用a+1e-9<b 确保a真的<b 而非误差造成的 09/30 23:18
16F:推 MacacaXDrz:为什麽是-9不是-10阿@@? 10/01 00:00
17F:推 benck:楼上问了一个好问题,请强者来回答= = 10/01 00:02
18F:推 LoganChien:第一个部分应该没有问题吧?DBL_MAX, 很大的数字。 10/01 00:08
19F:→ LoganChien:第二个部分,你写 if (1.3 * 1.3 == 1.69) 就知道了 10/01 00:09
20F:→ LoganChien:为什麽是 1e-9 呢?因为... 10/01 00:10
21F:→ LoganChien:1. 单纯的习惯,我也有看过有人用 1e-8, 1e-10 10/01 00:11
22F:推 MacacaXDrz:我看错了XD 10/01 00:12
23F:→ LoganChien:2. (印象中) C++ 标准规定 double 最低精确度是 1e-9 10/01 00:12
24F:→ iForests:感谢 LoganChien 和 rewqrewwq 两位强者的补充 :) 10/01 01:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP