當前位置:編程學習大全網 - 編程軟體 - Lua math.floor的奇怪問題

Lua math.floor的奇怪問題

雙精在做小數時 就應該別註意

老師教編程的時候 應該都有特別強調過吧 兩個小數相等 不能用等號 而應該用他們的差的絕對值小於壹個很小的數 比如 math.abs(a-b) < 10e-6

原因是 電腦是用二進制存儲數據 而類似0.1這樣的數字 在電腦裏存儲起來 其實是壹個很長的數字,在二進制裏 0.1可能是壹個無限不循環小數 所以我們會在壹定程度上截取下來 截取之後 就難免導致了實際值和我們存儲的值有很小很小的差異

而這裏輸出的d=49 就是壹個小於49並十分接近49的壹個數字

使用floor的時候 因為它確實比49小 所以就變成48了

  • 上一篇:鄭州師範學院信息安全這個系好不好?
  • 下一篇:電氣自動化專業的主要課程有哪些?
  • copyright 2024編程學習大全網