是否可以从两个整数类型变量的总和获得浮点类型结果?
示例:
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
的浮点数
答案 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
另请检查类似问题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
希望我帮助你;)