$td = 4.0;
echo $td;
输出为4; 但我想要双数据类型的实数(4.0);
答案 0 :(得分:3)
首先,不要挑剔,但PHP没有你想要的类型*。执行$td = 4.0;
后,您已创建float。
如果您使用var_dump($td);
进行检查,则会看到:float 4
。由于这里没有重要数字的概念,小数点后的零与存储的值无关。
其次,当您执行echo $td;
时,PHP将输出float 4
的字符串表示形式。同样,如果不以某种方式指定要显示 n 小数位,PHP将省略任何尾随零。再举一个例子,如果你这样做了
$td = 4.00010000;
echo $td;
你会看到
4.0001
这就是为什么其他答案/评论引导您走向格式化解决方案的原因。因为您真正需要做的是不更改变量的类型,因为它已经存储在适当的类型中。您只需指定在转换为字符串时应如何显示。有不同的方法可以做到这一点。如果使用printf
,则可以指定要显示的小数位数。这是你如何让它显示一个,例如:
printf('%.1f', $td);
'%.1f'
是格式字符串。 .1
部分告诉它显示一个小数位。但你没有改变类型。它只是输出格式化。
答案 1 :(得分:0)
您可以使用printf
echo printf("%f\n", $td);
答案 2 :(得分:0)
检查出来 - > string number_format(float $ number [,int $ decimals = 0])
Doc:http://php.net/manual/en/function.number-format.php
答案 3 :(得分:0)
$td = 4.0;
echo number_format($td,1);
这将吐出4.0“1”是你想要的数字小数