我正在創建一個簡單的PHP程序,該程序在三個隨機數計算爲整數時執行一個操作(並且僅當)。隨機數都是整數,用rand()函數創建。沒有進入計算的具體細節,重要的事情(就我的問題而言)是它包括了取平方根。不是一個非常有經驗的PHP編碼器,我知道的唯一的平方根函數是sqrt()。問題是,sqrt()返回一個浮點數,即使輸入是一個整數並且輸出是確切的。我簡單地想過把輸出轉換爲一個整數(使用類似intval()的東西,但這不起作用,因爲它會將所有輸出轉換爲整數,使測試無用!關於如何做到這一點的任何想法? 謝謝,php sqrt函數返回一個整數?
0
A
回答
4
3
與浮點工作時是一個常見的問題只是檢查,你得到的浮動是非常接近的整數;通常,這是通過檢查小數部分非常小做到:
if (abs(round(f)-f))<delta)
# do stuff
這裏的delta
是一個很小的常量,比如0.0001,它必須小得多取決於你期望你的結果離一個整數有多近。這將取決於你的計算。
0
沿着if($result % 1.0 == 0)
行可能工作,但我沒有能力現在測試它。
0
$result % 1e9
將返回$ result的整數部分(對於否定結果,它將找到結果的細胞)。但它是一種黑客攻擊,所以你可能只是爲了好玩而使用它。
0
這方面的知識是從其他語言編程,但是你試過用1 例如乘以表達式,如果你需要得到像 A = 3.45 * 8的東西整數;
這樣做 a = 3.45 * 8 * 1;
相關問題
- 1. Php sqrt函數返回錯誤編號
- 2. PHP SQRT()返回NAN
- 3. Smali函數:返回一個整數
- 4. C++ Lambdas:函數返回一個函數,返回一個函數...?
- 5. 函數返回一個函數,返回一個函數等
- 6. PHP Array函數返回隨機整數
- 7. PHP mt_rand沒有返回一個整數
- 8. 一個函數返回另一個函數php
- 9. OledbDataReader函數返回整數
- 10. 函數返回一個循環php
- 11. php函數返回一個select元素
- 12. 返回一個PHP echo'd函數
- 13. PHP從函數返回一個對象
- 14. PHP time()函數返回一個小時
- 15. 從php函數返回一個變量
- 16. 如何從一個dao函數返回一個整數?
- 17. PlayFramework使一個函數返回一個整數在旋轉?
- 18. C++ sqrt函數
- 19. SQL函數sqrt
- 20. sqrt()返回INF
- 21. 函數返回:PHP
- 22. 函數返回 - PHP
- 23. 一個gcc sqrt函數的bug?
- 24. JS函數返回另一個函數
- 25. 函數返回一個函數(JavaScript)的
- 26. 函數返回另一個函數
- 27. 從函數返回一個lambda函數
- 28. 如何有一個函數數組返回整數
- 29. 這個C函數爲什麼不返回一個整數值?
- 30. 函數返回數組 - PHP
只要檢查'floor($ num)== $ num'?或者我錯過了什麼... – 2011-03-01 23:50:02
你的問題有點不清楚。 – 2011-03-01 23:53:51
@布拉德:原則上是好想法,但對於浮點數的== ==幾乎總是(讀:總是)一個壞主意。使用增量進行比較。見例如http://stackoverflow.com/questions/4682889/is-floating-point-ever-ok – sleske 2011-03-01 23:56:15