2017-12-11 5 views
0

これを達成しようとしています 私は小数点以下を持っています1.00私は浮動小数点に変換するとになります。だから私の質問は最後のゼロを保存すると同時に浮動小数点文字を使用する場合はnumber_format(1.0,2)"1.00"になりますどの文字列ですが、私は最後のゼロで小数にする必要があります。これは、PHPが強制されますようごは、PHPの整数に文字列から変換するにはを必要としないように私は、これはXY problemだと言ってみましょう私がこれまで試したどの小数点以下のPHP文字列.00

<?php 

$decimal = "1.0"; 
$decimalToFloat = floatval($decimal) // It becomes 1.0 
$decimalToFloat = number_format($decimal,2) // It becomes "1.00" !!! String not a float !!! 
// The result which i want is 1.00 not "1.00" 
+0

文字列として扱わない限り(レポートなどに印刷するなど)、余分なことはどうしてですか? 1 === 1.0 === 1.00 === 1.0000000は事実上計算上同一です。 BTW:.. $ decimal = "1.0"は、PHPが$ decimalをSTRINGとして扱うようにします。 – DDeMartini

+0

私は知っている、それは同じですが、私はこのフォーマットでRest APIにそれを送る必要があります。例えばC#で可能です –

+0

あなたは1.00の文字列としてそれを扱う必要がありますいくつかのミドルウェアや他のコードを介して周りの引用符で終わっている問題ですか? middlwareでは、これをREST APIにどのように表現しているのですか?あなたはいくつかのパッケージを使用して、STDoutにストリームを書きますか?APIとのやりとりはどのようにしていますか?フロートが1.0のように見えるのはなぜですか?申し訳ありませんが、あなたは本当に私に意味をなさせるのに十分な文脈を持っていません。 – DDeMartini

答えて

0

です自動的にあなたのタイプです。 11.0に正確に等しく、1.01.00に正確に等しくなるようにこれに加えて

は、小数点以下に桁数を指定する必要がありません。実際には、強制的に文字列をキャストすると、PHPは自動的に小数点以下をトリミングすることを披露:

$decimal = "1.0"; 
echo number_format((float)$decimal, 2, '.', ''); // "1.00" (string) 
echo (int)number_format((float)$decimal, 2, '.', ''); // 1 (int) 
echo (float)number_format((float)$decimal, 2, '.', ''); // 1 (float) 

純粋にPHPでのゼロで構成小数点以下とintまたはfloatを披露することは不可能です。あなたはこれをする必要はありませんが、代わりに整数を使用することができます。

echo 1 + 1.01; // 2.01 (float) 

希望すると便利です。 :)

関連する問題