2017-12-28 17 views
0

Ist es möglich, Float-Typ-Ergebnis aus der Summe von zwei Integer-Typ-Variablen zu erhalten?Ist es möglich, das Float-Type-Ergebnis aus der Summe zweier Integer-Variablen zu erhalten?

Beispiel:

1 + 2 => 3.0 

ich versucht habe, mit number_format($result, 1) und sprintf("%.1f", $result), aber der Rückgabewert Typ String.

Außerdem, wenn ich werfe geben Sie dann den Rückgabewert zu schweben ist ein Schwimmer von Wert 3 und nicht 3.0

+1

PHP verwendet Typ Casting sowieso, so dass der Typ keine Rolle spielt. Können Sie nicht einfach '$ result = (float) (1 + 2)' – JustCarty

+0

ja, ich bekomme doppelte Art Wert 3. aber ist es möglich, 3.00? –

+0

Ich verstehe nicht, welchen Unterschied macht es? Wenn der Wert "3" oder "3,0" ist, macht das keinen Unterschied. Wenn Sie den Wert anzeigen, dann verwenden Sie das 'number_format' wie Sie getan haben, und dann ist es wieder egal, was der Typ ist. – JustCarty

Antwort

0

Ihre ganzzahligen Variablen sind im Typ int

Wenn Sie zwei int Typ hinzufügen, ist das Ergebnis zwangsläufig ein ganzzahliges Ergebnis.

$intOne = 1; 
$intTwo = 2; 

$result = $intOne + $intTwo; // = (int)3 

Sie die Art Ihrer Ergebnis ändern können, leicht, aber nicht notwendig ist gut, wenn man einen int in Ihrem var speichern ...

$floatResult = (float) $result; // (float)3 

Auch, wenn Sie nicht tun kennen den Typ Ihrer Variable können Sie die Funktion ‚floatval‘ (offizielle doc here) so verwenden:

$floatOne = floatval('3.14'); // (float)3.14 
$floatTwo = floatval("3.141 is a Pi number"); // (float)3.14 

in diesem Fall, wenn Sie zwei flaot Typ hinzufügen, ist das Ergebnis in float zwei:

$result = $floatOne + floatTwo; // (float)6.281 

Die Best Practices wollen die richtige Art auf Ihre Variable und Ihre Datenbank speichern (lesen this für weitere Informationen über Arten und Performance)

, wenn Sie nach dem Integer-Typ nur zeigen Dezimalstellen möchten, können Sie verwenden Sie die number_format() Funktion (offizielle Dokumentation here) kann wie folgt aus:

$decimalResult = number_format($floatResult, 4); 
echo $decimalResult; // Show '3.0000'  ^Number of decimals 

Hoffe, dass ich Ihnen helfen;)

0

Ich schlage vor, Sie .. Sie sprintf verwenden: -

$a = 1+2; 
$result = sprintf("%.2f", $a); //3.00 or $result = sprintf("%.1f", $a); //3.0 
echo $result; 

Hoffe, es hilft!

Verwandte Themen