是否有可能从两个整数类型变量的总和得到浮点类型的结果?

时间:2017-12-28 09:12:56

标签: php types casting

是否可以从两个整数类型变量的总和获得浮点类型结果?

示例:

my bad instruction
5
number of lines  = 
ExamenEx2.sh: line 19: [: -eq : opérateur unaire attendu

我尝试过使用1 + 2 => 3.0 number_format($result, 1), 但返回值类型是字符串。

此外,如果我键入cast为float,则返回值为值sprintf("%.1f", $result)而不是3的浮点数

3 个答案:

答案 0 :(得分:2)

我建议你..你可以使用sprintf: -

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

希望它有所帮助!

答案 1 :(得分:0)

使用floatval();将值转换为float

check the doc

另请检查类似问题PHP - Force integer conversion to float with three decimals

答案 2 :(得分:0)

您的整数变量属于int

类型

如果添加两个int类型,则结果不可避免地是整数结果。

$intOne = 1;
$intTwo = 2;

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

如果你在你的var中存储一个int,你可以很容易地改变你的结果类型,但是没有必要改善...

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

另外,如果您不知道变量的类型,可以使用函数' floatval' (官方文件here)就像那样:

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

在这种情况下,如果你添加两个flaot类型,结果是浮动二:

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

最佳做法是在您的变量和数据库上保存正确的类型(有关类型和效果的详细信息,请阅读this

如果您只想在整数类型后显示小数,则可以使用number_format()函数(官方文档here):

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

希望我帮助你;)