回答
floatval()
怎麼樣?
$f = floatval("33.66");
您可以通過使用鑄造函數調用,而不是剃掉類型轉換的幾納秒。但這是微型優化領域,所以除非每秒執行數百萬次這些操作,否則不要擔心。
$f = (float) "33.66";
我還推薦學習如何使用sscanf()
,因爲有時候這是最方便的解決方案。
list($f) = sscanf("33.66", "%f");
您可以嘗試floatval
,但浮動物可能有損耗。
您可以嘗試通過sprintf
運行號碼以使其更加正確的格式。格式字符串%.2f
將生成帶有兩位小數的浮點格式數字。多餘的地方變圓。
我不確定sprintf是否會將該值轉換爲內部格式化的浮點數,因此有損問題可能仍然存在。這就是說,如果你只擔心小數點後兩位,你應該不會擔心精度損失。
謝謝,我正在鑄造它 – johnshaddad 2010-07-26 23:17:02
如果你的意思是一個float:
$var = floatval("33.66")
或者
$var = (float)"33.66";
如果你需要一個小數的準確精度,有沒有這樣的類型在PHP。有Arbitrary Precision Mathematics擴展名,但它會返回字符串,因此它在執行計算時僅適用於您。
php是一種鬆散類型的語言。不要緊,如果你有
$ x = 33.66;
或
$ X = 「33.66」;
無論發送給mssql都是一樣的。
你只是想確保它格式正確,或者是一個實際的浮動?
嗯,事實證明,我有雙引號括起來之前單引號。這就是MSSQL拒絕它的原因xD謝謝你的提示。 – johnshaddad 2010-07-26 23:18:38
並且MySQL也會執行字符串<->數字轉換。這並不總是一個好主意。 – staticsan 2010-07-26 23:43:45
- 1. PHP:intval()等於數字> = 2147483647
- 2. BigDecimal上的循環小數爲小數
- 3. 小尾數爲整數
- 4. 使小數點爲整數
- 5. Automapper將小數設置爲全部爲2位小數
- 6. 爲什麼LabView將小數轉換爲小浮點數?
- 7. 數爲String(始終爲2位小數)
- 8. 將Objective-C中的小數轉換爲小數(有理數)?
- 9. 將數據從小數轉換爲小數
- 10. 小數位數...將Double值轉換爲小數點後0位
- 11. 轉換小數爲char /串
- 12. Interlocked.Exchange爲空的小數
- 13. 將NSString轉換爲小數
- 14. 將小數轉換爲HH:MM:SS
- 15. 「爲了錢,總是小數」?
- 16. 大小爲0的數組
- 17. 分割數爲整數和小數
- 18. 爲什麼數組大小爲1
- 19. 將秒轉換爲小數小時(半小時爲.50而不是30)
- 20. NHibernate 3.0將小數舍入到5位小數 - 爲什麼?
- 21. C++將八進制小數轉換爲十進制小數?
- 22. 刪除除小數標記全部爲零小數
- 23. 將此varchar轉換爲具有相應小數點的小數?
- 24. 爲什麼`FILTER_VALIDATE_NUMBER_FLOAT`常數會減小小數位字符?
- 25. 如何將實際小數值轉換爲虛擬小數值?
- 26. 爲小數點以上的小數點添加/刪除
- 27. 指定小熊貓個別字段的小數位數爲csv
- 28. 使用SQL顯示小數爲分數
- 29. 將x天數轉換爲小數點
- 30. 小尾數爲整數(或BigInteger的)
謝謝!我要去鑄造。 – johnshaddad 2010-07-26 23:16:12
sscanf復活我的8歲C生活xD再次感謝 – johnshaddad 2010-07-26 23:26:48