- 小學生C++創意編程(視頻教學版)
- 劉鳳飛
- 1384字
- 2024-12-31 19:29:59
第5課 這面積總缺那么一點(浮點數數據類型)

掌握計算后,我設計了計算三角形和梯形面積的程序,但是發現面積的計算結果總是會少了那么一點。
為什么面積總會缺一點呢?想要解決這個問題需要先編寫出計算三角形和梯形面積的程序。

溫故知新
(1)三角形面積=底×高÷2。

運行程序:
請輸入三角形的底邊長? 7 請輸入三角形的高? 5 三角形的面積是: 17
實際上,三角形的面積是17.5。

(2)梯形面積=(上底+下底)×高÷2。

運行程序:
請輸入梯形的上底? 5 請輸入梯形的下底? 8 請輸入梯形的高? 3 梯形的面積是: 19
實際上,梯形面積是19.5。

area = (upperSole + bottom) * height / 2:程序計算也是先乘除后加減,遇到括號先計算括號里的內容。
提出思考
為什么這兩次面積計算都少了0.5呢?遇到問題,不要急于翻書查找答案,探索和思考出答案的過程要比答案本身更重要。

(1)想一想,計算結果和什么有關?①存放數字的變量;②計算的式子。
(2)想一想,變量都是什么數據類型?
(3)看一看,計算式子有沒有什么特別的?
探索思考
當我們遇到一個疑問的時候,要“上下求索”。從上尋求和這個問題有關聯的部分,列出導致這樣的結果的可能;向下探尋這個問題可能引出的變化,列出這些變化。然后逐一分析。
我發現最關鍵的可能是變量被聲明為int類型,即聲明的是整數類型,而缺少的部分都是小數部分。整數是不包含小數部分的,所以小數部分就出不來了。

float浮點數
把變量聲明為float數據類型。

運行程序:
請輸入三角形的底邊長? 7 請輸入三角形的高? 5 三角形的面積是: 17.5

float稱為浮點數數據類型(單精度),用于存儲實數值,即含有小數的值。如果你需要更高的精度,可以選擇double數據類型,它被稱為雙精度浮點數。
翻譯助力理解
● float:浮動的、漂浮。
● double:兩倍的,雙的。
area = length * height / 2:將計算length * height / 2,并將計算出的結果賦值給area。在編程中,該語句中的=被稱為賦值操作,是先進行等號右邊的計算,再將最終的結果賦值給等號左邊的變量。注意,這里的=不是等于的含義。
敲黑板
特別注意沒輸出的小數部分。

輸出結果竟然是1。
雖然已經將num定義為浮點數,但在3/2的計算過程中,由于3和2都是整數,計算仍然是按照整數類型的方式進行,直到計算出結果1后才將它賦值給浮點數類型的變量num。
想要解決這個問題,需要在計算的過程中引入浮點數,讓計算機按照浮點數來計算。
稍作改變,改為num = 3/2.0;,試試看吧。
降價促銷
雙十一到了,之前5元一瓶的牛奶迎來了大促銷,現在4.8元一瓶,并且還買一送一,請問買32瓶需要多少錢?

鞏固練習
(1)想要聲明一個變量存放數值3.14,以下哪句代碼可以做到?( )
A.float π
B.int π
C.float num
D.float 1num
(2)float被稱為有小數部分數值的雙精度浮點數。(?。蹋ā。?/p>
(3)寫出下面程序的運行結果。

探索思考
既然float可以保留數值的小數部分,而double數據類型的精度比float數據類型的精度還要高,那為什么每次聲明變量的時候不都聲明成double,這樣不就可以避免一些小數的計算問題了嗎?

計算機好比一個超級大的儲存盒子,想像一下往盒子里放入3.14159265359和放3.14所需要的空間大小會一樣大嗎?
如果往盒子里放東西時沒有做規劃的話,就可能導致放不下或只能裁剪后再放入。
于是發明者就想到了聲明,即每放入一個東西就要空出一塊專門的位置,就像一個小盒子。但是每個小盒子要多大呢?這就取決于數據類型了。如果是int數據類型,就空出一個小點的盒子,如果是double數據類型,就空出一個大盒子。這樣就可以充分利用空間,而且也不會造成空間的浪費。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- C++程序設計(第3版)
- C++ Builder 6.0下OpenGL編程技術
- Instant Zepto.js
- 64位匯編語言的編程藝術
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優化計算
- Building Minecraft Server Modifications
- MongoDB權威指南(第3版)
- Python圖形化編程(微課版)
- C++編程兵書
- 零基礎學C語言(升級版)
- INSTANT Apache Hive Essentials How-to
- PostgreSQL Developer's Guide
- Java 9:Building Robust Modular Applications
- Learning Redux