1 00:00:00,000 --> 00:00:02,360 >> DAVID J.马兰:正如你可能知道, 温度测量使用 2 00:00:02,360 --> 00:00:04,360 在不同的尺度不同 部分世界。 3 00:00:04,360 --> 00:00:09,370 举例来说,212华氏度 100度和32度 4 00:00:09,370 --> 00:00:11,810 华氏摄氏0度。 5 00:00:11,810 --> 00:00:14,230 那岂不是很好,如果我们有一台电脑 程序,使我们能够 6 00:00:14,230 --> 00:00:16,950 ,比如说,从华氏温度转换 为摄氏? 7 00:00:16,950 --> 00:00:18,510 >> 好了,我们可以编写程序。 8 00:00:18,510 --> 00:00:24,350 让我们先从包括cs50.h, 这样我们就可以使用一个调用的函数 9 00:00:24,350 --> 00:00:28,610 获得浮动,其中,像GET诠释,得到了 从用户数,但这时一 10 00:00:28,610 --> 00:00:31,440 浮点数 - 1 带小数点。 11 00:00:31,440 --> 00:00:34,840 >> 让我们也包括标准IO.H 让我们有机会获得 12 00:00:34,840 --> 00:00:36,230 功能,如打印f。 13 00:00:36,230 --> 00:00:40,000 而且,我们还主要申报 在通常的方式。 14 00:00:40,000 --> 00:00:42,675 >> 让我们接下来提示用户 在华氏温度。 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 现在,让我们真正享受温度 从用户,首先通过 17 00:00:49,220 --> 00:00:52,910 声明一个变量叫 F型浮动。 18 00:00:52,910 --> 00:00:56,750 一个浮点,再次,这意味着一个变量, 存储一个浮点值, 19 00:00:56,750 --> 00:00:58,200 一个有小数点。 20 00:00:58,200 --> 00:01:01,780 >> 让我们为它分配的回报 GET持股价值。 21 00:01:01,780 --> 00:01:06,080 然后让我们来计算一下的 就可以了,先声明再浮 22 00:01:06,080 --> 00:01:11,690 称为C为摄氏和存储在C 一些常见的算术结果。 23 00:01:11,690 --> 00:01:19,060 5.0除以9.0倍f零下32.0。 24 00:01:19,060 --> 00:01:23,440 >> 现在,让我们打印出结果 这个计算。 25 00:01:23,440 --> 00:01:24,730 百分比的F - 26 00:01:24,730 --> 00:01:27,890 标志着一个占位符 浮点值 - 27 00:01:27,890 --> 00:01:31,680 逗号C到打印出来的 摄氏温度。 28 00:01:31,680 --> 00:01:33,000 让我们来拯救我的决赛。 29 00:01:33,000 --> 00:01:38,220 编译F到C。运行程序 用点斜线F到C。 30 00:01:38,220 --> 00:01:39,940 >> 让我们试试这些共同 温度。 31 00:01:39,940 --> 00:01:45,820 在华氏212度 是100摄氏度。 32 00:01:45,820 --> 00:01:50,090 在华氏32度是 0度左右。 33 00:01:50,090 --> 00:01:54,240 >> 现在,让我们完善这个程序的一个小 通过不相当印刷尽可能多的0位 34 00:01:54,240 --> 00:01:55,820 之后小数位。 35 00:01:55,820 --> 00:01:57,940 要做到这一点,我要去 回到第11行。 36 00:01:57,940 --> 00:02:03,430 和而不是仅仅指定百分比楼 我要改为指定比如说 37 00:02:03,430 --> 00:02:08,800 0.1楼通知打印F I只 要打印一个浮点值 38 00:02:08,800 --> 00:02:11,750 到小数点后一个值。 39 00:02:11,750 --> 00:02:13,630 >> 让我们重新保存我的程序。 40 00:02:13,630 --> 00:02:19,680 用make F到C。重新编译它然后 用点斜线F到C。并重新运行它 41 00:02:19,680 --> 00:02:24,910 让我们再试一次,比方说,212, 这给了我100.0。 42 00:02:24,910 --> 00:02:28,360 >> 现在值得注意的是,我做了 东西很刻意在第9行。 43 00:02:28,360 --> 00:02:35,830 注意我是如何写5是5.0,9 为9.0,甚至32为32.0。 44 00:02:35,830 --> 00:02:39,000 好了,前两个这些值分别为 很刻意挑选为 45 00:02:39,000 --> 00:02:42,200 浮点值,不只是因为 与其余的一致性 46 00:02:42,200 --> 00:02:42,940 我的计划 - 47 00:02:42,940 --> 00:02:45,110 这显然​​涉及到浮动 点值 - 48 00:02:45,110 --> 00:02:50,210 但因为事实证明,C,如果你 另一个整数除以一个int时, 49 00:02:50,210 --> 00:02:54,350 你会得到导致的答案是 本身一个int,即使这意味着 50 00:02:54,350 --> 00:02:57,450 不必扔掉一切 小数点后。 51 00:02:57,450 --> 00:03:04,990 >> 换句话说,如果我改变这个5.0〜 5或此9.0到9,然后重新保存 52 00:03:04,990 --> 00:03:10,550 我的程序,重新编译使用make F到C, 然后用点斜线f重新运行它 53 00:03:10,550 --> 00:03:15,310 C和类型的像212的输入, 注意,答案我要去 54 00:03:15,310 --> 00:03:17,860 得到这个时间其实是非常错误的。 55 00:03:17,860 --> 00:03:23,570 0.0不正确的程度 作为摄氏华氏212。 56 00:03:23,570 --> 00:03:24,500 >> 那么,这是怎么回事? 57 00:03:24,500 --> 00:03:29,410 那么,在第9行,因为5现在是一个 整数,因为9是现在的 58 00:03:29,410 --> 00:03:34,810 整数,结果数学 应该是0.5555等等。 59 00:03:34,810 --> 00:03:39,120 但由于结果,根据 C'S规则,必须是一个整数,即 60 00:03:39,120 --> 00:03:44,020 0.5555被扔掉, 留给我们的只是0。 61 00:03:44,020 --> 00:03:48,600 >> 所以,最后,我结束了乘 很意外地0倍f减 62 00:03:48,600 --> 00:03:52,830 32.0,这是无论什么 总是要给我0。 63 00:03:52,830 --> 00:03:56,930 所以千万要记住,任何时候使用 在接近浮点值 64 00:03:56,930 --> 00:03:59,860 整数,你不一定 所以你期望得到的答案。 65 00:03:59,860 --> 00:04:04,220 所以要小心使用,因为我在做 第一种情况下,浮点值 66 00:04:04,220 --> 00:04:06,530 在整个以避免任何此类问题。 67 00:04:06,530 --> 00:04:08,267