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燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP