關於浮點數實際值和預設值

2021-06-27 10:05:09 字數 987 閱讀 4245

1.1程式如下 

1.2.結果如下:

預期:1.2f與1.2是相等的,顯示後面的小數應該全是0。實際:1.2f實際是1.2000000476837158…..,並不是精確的1.2,而1.2f也與1.2不相等。原因:(1)float的有效數字只有8個,也就是1.2f輸出20個位時只能保證前8位(1.2000000)是精確地,後面12位都是不精確的。

(2)由於c語言預設小數是double型別的,所以1.2是double型別的資料,當然與1.2f這個float型別的資料不相等。

程式如下:

2.2結果如下:

預期:1.3+04應該是等於1.7的。

實際:乙個double型的1.3加乙個double

型的0.4結果不等於1.7。

原因:計算機裡的浮點數沒有筆算那麼精確,它的1.0

也許是0.9999999993

或者是1.00000000004

,不能夠做精確的相等判斷,所以不能寫

1.4+0.3==1.7

,1.4+0.3

的結果除非在取有效數字的時候正好近似成

1.7,否則就不會等於

1.7了,應該相對自己所關注的有效數字,允許多幾位有效數字的偏差,譬如這個程式中,當

1.4+0.3

和1.7

相差在0.00001

以內時可以認為他們相等。具體的允許偏差的位數應該視情況而定。

SQL 預設值和規則

建立規則 下面來演示以下兩種完整性約束的操作 由於sql server2008取消了以下兩項操作的圖形介面操作,我們只能用命令建立,配合圖形介面來觀察結果了。先建立了乙個20歲的年齡的預設值,在我們新增學生不輸入學生年齡的時候,系統自動新增預設值。可以看到系統自動新增年齡20 我們現在再來看下面的問...

prop 驗證,和預設值

prop 驗證,和預設值 所有的 prop 都使得其父子 prop 之間形成了乙個單向下行繫結 父級prop 的更新會向下流動到子元件中,但是反過來則不行。這樣會防止從子元件意外改變父級元件的狀態,從而導致你的應用的資料流向難以理解。額外的,每次父級元件發生更新時,子元件中所有的 prop 都將會重...

int和Integer的預設值

群裡有乙個小夥伴發了一段和下面差不多的 啊,問了乙個問題,如下 public static void main string args public integer name 這段 毫無疑問,打出來的是null 群友問,為什麼name中的return不報錯啊,null不是string的預設值嘛然而我...