【C 學習】04.1-類型轉換浮點數

“知道做不到就是不知道”

?一、類型轉換

1.自動類型轉換:當運算符(常見+、-、*、/、%)兩邊出現不一致的類型時,編譯器會自動轉換成較大的(范圍更大)類型。

從小到大:char-short-int-long-long long; int-float-double(整型轉換成浮點型

2.但是特別的對于“printf ”,任何小于int的類型都會被轉換成int;float會被轉換成double。但是“scanf ”卻不會,需要嚴格的格式字符串。如果要輸入short,就需要%hd(因為需要明確的在內存中的大小,便于分配空間)。


3.強制類型轉換

(1)格式:“(類型)值”。

int a;
a=(double)2.0;

(2)注意安全性:大的不要轉換成小的!(防止在內存中溢出,損失精度)

通常是轉換成較大的類型時使用.

4.強制類型轉換的優先級比四則運算還高!!

二、浮點數(float&double)

1. 浮點范圍

(1)inf——表示超過規定范圍的浮點數:表示無窮【+無窮 &-無窮】
(2)nan——表示不存在的浮點數,比如說0/0

2. 精度浮點數

(1)float類型只有7位有效數字,在不規定小數位數的情況下,它的精度是不太準確的。

(2)從鍵盤輸入的帶有小數點的字面量編譯器是默認double類型,而不是float類型。如果一定要要用float類型的數據,所就要用f、F作為后綴來表明數據類型。

現在編程大多數人都會選擇用double,而不是float。因為double精度更高,不容易出現錯誤。之所以會有float存在是因為以前的計算機內存都比較小,程序員都會盡可能的節省空間。現在的計算機內存都相當大,所以內存空間這個基本不成問題!

*這里突然想到之前在講變量的時候遺忘了一點,補充一下:打開界面后,編寫代碼的過程中定義的所有變量、結構等等都是臨時存儲在內存空間里面的,一旦關閉程序,內存空間就會被被釋放。

(3)兩個浮點數,如果直接用==來判斷是可能失敗的,要用fabs(F1-F2)<1e-12/1e-8;

fabs()是<math.h>里的函數,表示求取誤差的絕對值。

1e-12用于表示比較的精度,精確到小數點后幾位。

(4)最好不要在做計算的時候多次使用浮點型數據,它的誤差會不斷的累加。最好的辦法就是通過倍率,化為整型變量。比如說1.23元,就將其表示為123分,以減少計算誤差。
(5)浮點數的內部表達:


(6)選擇浮點類型:沒有特殊要求,盡量只使用double。(甚至還有long double)

3. 浮點類型

(1)在靠近0的附近很小一片區域(想象無限靠近),使用float和double都無法表示;但是0和無窮大還是可以表示。

(2)輸入和輸出:%f就是正常輸出;%e或者%E會輸出科學計數法形式的數據。

(3)對于浮點型的數據,在計算機的內存里面只保留有固定的某些數據,在相鄰的兩個數據之間有無窮多個數,在使用計算機輸入或者輸出數據的時候,就找相鄰最接近的數來表示。

比如說,我本意想要輸出的數據是0.0048,但是計算機內存里面只有0.004和0.005,那么就用0.005來近似表達0.0048。這也可以合理的解釋為什么double的精度會比float高——在內存中,相鄰兩個數之間的距離,double小于float,能精確表示的范圍更大。

寫在最后:

更新C語言學習筆記

如有錯誤,煩請多多批評指正!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91999.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91999.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91999.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于反事實對比學習的魯棒圖像表征|文獻速遞-醫學影像算法文獻分享

Title題目Robust image representations with counterfactual contrastive learning基于反事實對比學習的魯棒圖像表征01文獻速遞介紹醫學影像中的對比學習已成為利用未標記數據的有效策略。這種自監督學習方法已被證明能顯著提升模型跨領域偏移的泛化能力&#xff0c;并減少訓…

機器學習(5):樸素貝葉斯分類算法

貝葉斯的核心思想就是&#xff0c;誰的概率高就歸為哪一類。貝葉斯推論P(A):先驗概率。即在B事件發生之前&#xff0c;我們對A事件概率的一個判斷。P(A|B)&#xff1a;后驗概率。即在B事件發生之后&#xff0c;我們對A事件概率的重新評估。P(B|A)/P(B)&#xff1a;可能性函數。…

Docker 容器內進行 frp 內網穿透

開始之前需要有一臺可以進行公網訪問的服務器 下載安裝 frp 這個直接到 github 官網就可以下載了 點擊Releases 就可以查看到可以下載的源&#xff0c;根據自己電腦的型號進行選擇就好了。 linux服務器上下載 如果是在linux的服務器上的話可以直接通過wget進行下載 例如&a…

復制網頁文字到Word、WPS文字?選中后直接拖放

要把網頁、PDF或其他應用中的文字內容復制到Word、WPS文字、記事本等&#xff0c;不一定要先復制、再粘貼&#xff0c;也可以選中文字后直接拖動到目標位置即可。多次操作&#xff0c;可以把窗口并排再拖動。如果你經常需要在不同應用之間引用文字&#xff0c;不妨試一試。操作…

Starrocks中的 Query Profile以及explain analyze及trace命令中的區別

背景 本文基于Starrocks 3.5.5 現有公司因為業務的不同&#xff0c;可能會更加關系單個SQL 的RT&#xff0c;因為如果一個SQL的RT比較大的話&#xff0c;影響的就是這個業務&#xff0c;從而影響收入&#xff0c;所以對于這方面我們就比較關心&#xff0c; 而最近在基于Starro…

網絡 —— 筆記本(主機)、主機虛擬機(Windows、Ubuntu)、手機(筆記本熱點),三者進行相互ping通

背景介紹最近在筆記本電腦上的虛擬機(Ubuntu、Windows Server搭配)上部署了"WD"開源手游服務器(舊版本)&#xff0c;手機連接上了筆記本電腦開啟的WIFI熱點&#xff0c;同時手機上安裝了"WD"手游客戶端。于是首先得保證網絡相互暢通才能玩游戲&#xff0c;…

裸露土堆識別準確率↑32%:陌訊多模態融合算法在生態監測的實戰解析

原創聲明本文為原創技術解析文章&#xff0c;涉及技術參數及架構描述均參考《陌訊技術白皮書》&#xff0c;禁止任何形式的轉載與抄襲。一、行業痛點&#xff1a;裸露土堆識別的現實挑戰在生態環境保護、建筑工地監管等場景中&#xff0c;裸露土堆的精準識別是遏制揚塵污染、防…

網站從HTTP升級到HTTPS網址方法

將網站從HTTP升級到HTTPS涉及幾個關鍵步驟&#xff0c;以確保安全連接以及用戶和搜索引擎的平穩過渡。獲取并安裝SSL/TLS證書&#xff1a;1、從CA機構授權提供商Gworg獲取SSL/TLS證書。選項包括域名驗證(DV)、組織驗證(OV)和擴展驗證(EV)證書&#xff0c;驗證嚴格度各不相同&am…

WaitForSingleObject 函數參數影響及信號處理分析

一、第二個參數&#xff08;超時時間&#xff09;的影響 DWORD result WaitForSingleObject(hHandle, 1000);中的第二個參數1000表示等待超時時間為1000毫秒&#xff08;1秒&#xff09;&#xff0c;其核心影響如下&#xff1a; 1. 函數行為控制 立即返回&#xff1a;若對象已…

dbeaver導入數據及配置講解

導入數據教程&#xff1a; 前提.csv文件&#xff1a;且只能導入一個sheet點擊下一步選中導入的.csv文件對應好數據字段和表字段&#xff0c;感覺不需要導入的可以skip配置一下&#xff0c;下面有介紹&#xff1a;以下為你詳細解析這些數據加載相關功能的含義與作用&#xff1a;…

JAVA學習筆記 自增與自減的使用-006

目錄 1 基本概述 2 自增與自減的用法 2.1單獨使用 2.2 參與運算 3 思考與練習 3.1 基礎題 3.2 中等題 3.3 進階題 4 總結 源計劃&#xff1a;我從來不認為自己的成功過程有多心酸&#xff0c;只是心中不懼失敗&#xff0c;能夠承受別人不能接受的失望而已&#xff01;…

從LCM到SomeIP,再到DDS:技術演進與工作原理剖析

文章目錄一、LCM&#xff1a;輕量級通信與編組庫工作原理C 代碼示例局限性二、SomeIP&#xff1a;面向服務的可擴展中間件工作原理C 代碼示例優勢與特點三、DDS&#xff1a;數據分發服務工作原理C 代碼示例優勢與應用場景四、技術演進總結在分布式系統通信領域&#xff0c;技術…

Redis里面什么是sdshdr,可以詳細介紹一下嗎?

文章目錄為什么 Redis 不直接使用 C 語言的字符串&#xff1f;sdshdr 的結構sdshdr 的不同類型sdshdr 帶來的優勢總結我們來詳細解析一下 Redis 的核心數據結構之一&#xff1a; sdshdr。sdshdr 是 “Simple Dynamic String header” 的縮寫&#xff0c;意為“簡單動態字符串頭…

RocketMq如何保證消息的順序性

文章目錄1.順序消息的全流程1.1 發送階段&#xff1a;消息分區1.2.存儲階段&#xff1a;順序寫入1.3.消費階段&#xff1a;串行消費2.第三把鎖有什么用?3.順序消費存在的問題和Kafka只支持同一個Partition內消息的順序性一樣&#xff0c;RocketMQ中也提供了基于隊列(分區)的順…

zabbix平臺無法刪除已停用主機的處理案例

在zabbix平臺上刪除已停用的主機&#xff0c;提示“SQL描述式執行已失敗: "DELETE FROM items WHERE (itemid IN &#xff08;.....)”&#xff0c;無法刪除&#xff0c;本文為處理情況。一、問題現象在zabbix平臺上刪除已停用的主機&#xff0c;提示“SQL描述式執行已失敗…

【計算機網絡】6應用層

1.網絡應用模型 特性 客戶/服務器模型(Client-Server, C/S) 對等模型(Peer-to-Peer, P2P) 中心化 是(依賴服務器) 否(去中心化) 角色特點 服務器 客戶機 無中心服務器 提供計算服務 請求計算服務 每個節點(Peer)既是客戶機也是服務器 永久在線 間歇接入網絡 節點間…

基于 Spring Boot + Vue 實現人臉采集功能全流程

一、技術棧與依賴引入 后端依賴 (pom.xml) <!-- 百度AI SDK --> <dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.16.19</version><exclusions><exclusion><grou…

《Python基礎》第3期:使用PyCharm編寫Hello World

我們寫文檔大多用 Word、寫表格大多用 Excel、寫幻燈片大多用 PPT。 寫代碼也需要一個軟件作為編輯器&#xff08;傳說的大神用記事本寫代碼純屬玩笑了&#xff0c;越是大神越追求效率&#xff0c;用的軟件功能越強&#xff09;。 Python 現在已經有了非常多的代碼編輯器&#…

我的第一個開源項目:排序算法的多種實現方式

以 排序算法 為例&#xff0c;展示如何在 Python 中進行不同實現方式的對比項目概述本項目旨在通過 Python 實現幾種經典的排序算法&#xff0c;并通過性能對比、代碼注釋和優化手段&#xff0c;為開源社區提供參考。選擇排序、冒泡排序、快速排序和歸并排序作為主要算法&#…

5G-LEO - 用于 5g satellite 鏈接的 OpenAirInterface? 擴展

目標&#xff1a;5G-LEO 旨在加速 OAI 作為開源工具的發展&#xff0c;允許衛星通信社區交流和比較 5G NTN 結果&#xff0c;并促進研發活動的合作。擴展的OAI軟件庫被視為開發早期原型的重要工具&#xff0c;用于驗證關鍵的5G NTN設計方面&#xff0c;并為3GPP標準化過程提供及…