浮點數是四種基本資料型別之一
用於近似表示某個數(實數)
主要有float(單精度)和double(雙精度)兩種
通過一道經典面試題來理解「近似」或者用更規範的語言來說是「精度」
題:例如int 變數n 與「零值」
比較的if 語句為:
if ( n == 0 )
if ( n != 0 )
以此類推。
請寫出float x 與「零值」比較的if 語句
完美解:
#define precision 0.00001
float ffloatnumber = precision;
(ffloatnumber>0)&&(-ffloatnumber<0)
思路:比較就是看相比較的兩個數是否相等,但float是浮點數一種單精度,精度是近似的表示的乙個數,而不能精確的表示乙個數,是一種無限趨近,那便有乙個範圍
在浮點數方面發現兩個點:
<1>整型或者浮點型的0 除 浮點0 得 #ind000(用float接收的 無窮小)或者0x80000000(用int接收的 32位int最小的數)
整型或者浮點型除0外的數 除 浮點0 得 #inf000(用float接收的 無窮大)或者0x80000000(用int接收的 32位int最小的數)
<2>浮點型帶有小數的數(0除外)和相同的數比較,返回false
例如:float a = 5.1;
if(5.1 == a)
但是換為0,返回true
例如:float a = 0.0;(或者是0)
if(0 == a)
至於為什麼會有上面的情況,浮點數採用的ieee格式這些我不做深究
1.個人水平不到
2.遇到可以解決即可
Erlang基礎之浮點數
在實際的學習 工作和生活中,只用整數是遠遠不夠的。程式語言也是如此,人們需要用浮點數來進行計算和處理相關資訊。一 浮點數的寫法 1.我們日常生活中用的帶小數點的數,都是浮點數,比如 3.45 7.89 2.0 5.0000 2.當我們需要表示較大的逐點數值時,為了減少書寫難度和閱讀難度,常使用科學計...
DX之浮點數比較
我們都知道在c 數與數的比較我們都知道用 等等方法,但在浮點數比較中剛可有行用這種,首先,浮點數在計算機當中是以二進位制的方式表達的,所以無法表達其精度,其次計算機浮點數的精度float型別下,只有七位,在進行浮點運算的時候,這個精度往往會導致運算的結果和實際期望的結果之間有誤差。這樣我們會自然而然...
浮點數 儲存
關鍵字 體系結構 ieee754 浮點數 儲存 main 如果不執行上面的 讓我們來直接判斷,輸出的結果會是什麼?而在你執行程式之後,結果卻很讓人詫異 123.456001。為什麼會是123.456001?有六位小數可以理解,最後那個1是為何?有很多人解釋說最後那個1是亂碼,隨機的。嘿嘿 其實無論你...