6
A
回答
7
#INF
是無限的,#IND
是NaN。給它一個測試:我的Windows機器上
print(1/0)
print(0/0)
輸出:
1.#INF
-1.#IND
由於有在ANSI C對這些沒有標準的表示,你可能會得到不同的結果。比如:
inf
-nan
+1
'-1。#IND'是一種特殊的NaN模式,被稱爲'INDEFINITE'。雙精度版本的位模式爲「0xfff800000000000」。 – njuffa
6
擴大@YuHao已經是很好的答案了。一些轉換成字符串時
Lua中做一點,因爲它在很大程度上依賴於底層的C庫實現。事實上的Lua print
implementation調用的Lua tostring
這反過來(經過一系列其他的呼叫)使用lua_number2str
macro,其在的C sprintf
來定義。因此,最後你會看到C實現使用的無窮無盡和NaN的表示(這可能因編譯Lua時使用的編譯器和應用程序鏈接的C運行時而異)。
2
@YuHao已經指出了什麼手段+/- 1#INF(+ -INF)和-1。#IND(男),所以我只是補充如何處理它(我只需要)在Lua:
- 「inf」(+/- 1.#INF)是(Lua/C)可以表示的較高數值,並且語言爲您提供了常數:「math.huge」。所以你可以在Lua裏爲+ -INF測試一個數字;下面的函數「isINF()」顯示瞭如何使用它。
- 「南」( - 1#IND)的東西,不能用數字處理:它應該是一個數字,它不和任何你用它來做什麼事情但一些也。銘記這一點,記住沒有NaN等於其他NaN;檢查NaN,如下面的函數「isNAN()」。
local function isINF(value)
return value == math.huge or value == -math.huge
end
local function isNAN(value)
return value ~= value
end
相關問題
- 1. 什麼是inf和nan?
- 2. 什麼是gdb中的inf
- 3. IND和NAN號碼有什麼區別
- 4. Lua中的userdata和lightuserdata是什麼?
- 5. 爲什麼float('Inf')是float('Inf')在Python中返回false?
- 6. 什麼是HGETALL的在Lua
- 7. 什麼是Lua州?
- 8. 在Lua中「:」是什麼意思
- 9. 什麼是ActiveX INF文件中的hook1?
- 10. Python中爲什麼不使用Inf,-Inf和NaN關鍵字?
- 11. 什麼是ROBLOX Lua腳本?
- 12. 爲什麼assertAlmostEqual(-inf,-inf)失敗?
- 13. 爲什麼META-INF叫做META-INF?
- 14. 什麼是回報和我做錯了什麼(Lua)
- 15. 爲什麼1/inf == 0但是1/0!= inf?
- 16. Lua中的#是什麼意思?
- 17. Lua中的多線模式是什麼?
- 18. Lua的源代碼中posrelat()是什麼?
- 19. Lua 4.0中的「標籤」是什麼?
- 20. 爲什麼typeof(Inf)是雙重的?
- 21. 什麼樣的C++常量/宏是-1。#IND?
- 22. 爲什麼classpath默認爲JBoss 5.1中的WEB-INF/classes /而不是WEB-INF /?
- 23. 爲什麼maven在尋找`webapp \ WEB-INF \ web.xml`而不是`web-app \ WEB-INF \ web.xml`
- 24. Lua - 如果和和,什麼更快?
- 25. Lua中print(0x1e1)的輸出是什麼?爲什麼?
- 26. 爲什麼長在Lua
- 27. NaN和Inf以及R中的NULL和NA有什麼區別?
- 28. Canvas.Width和Canvas.height返回-1#.IND
- 29. Lua的string.gsub模式規則是什麼?
- 30. lua算子〜是什麼意思?
'1/0','-1/0'和'0/0' –
你的Lua構建必須使用Lua的'number'型浮點型。 (默認的Lua構建使用C'double'型)。參見[什麼每臺計算機科學家應該知道關於浮點運算(http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg .html)David Goldberg。 –