2012-03-29 9 views
2

これは、小数部が0PHP int + float。バグやデフォルトの動作?

$formatted = (int)$i + $i - (int)$i; 

// $i = 15.12 , $formatted = 15.12 
// $i = 15.00 , $formatted = 15 

である。しかし、PHPのバグのようです場合INTとしてFLOAT番号をフォーマットするための機能です。 PHPマニュアルでINT + FLOAT操作の型キャストが見つかりませんでした。他の言語では、C++ INT + FLOAT = FLOATのようになります。

答えて

1
<?php 

$i = 15.00; 

$formatted = (int)$i + $i - (int)$i; 

var_dump($formatted); 


float(15) 

これはまだフロートです。

あなたが知っている場合、それは正確に15

数は正確に15あります、そして、あなたがすることはできませんそして、それがどこから来たのコンテキストを知らないので、00が示されない理由があります任意の精度を仮定します。

たとえば、$ f =(float)15と仮定しますか? 15.00を表示するには?いいえ、もちろんです。同じコンセプトが適用されますが、それはあなたが15.00に期待している文脈の中でだけです。

また、単なる実験でない限り、number_format()またはround()が便利です。

+0

大きな感謝!私は実際にvar_dump $フォーマットされた値をしようとしなかった... – Serge

関連する問題