思維啟發之浮點數

2021-06-23 05:17:00 字數 876 閱讀 7025

浮點數是四種基本資料型別之一

用於近似表示某個數(實數)

主要有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是亂碼,隨機的。嘿嘿 其實無論你...