以php double数据类型格式获取价值

Tan*_*was -1 php type-conversion

$td = 4.0;
echo $td;
Run Code Online (Sandbox Code Playgroud)

输出为4;但是我想要双数据类型的实数(4.0)。

Don*_*nic 5

首先,不要太挑剔,但是PHP没有您想要的类型*。当您$td = 4.0;创建一个float时

如果您使用进行检查var_dump($td);,则会看到:float 4。由于此处实际上没有有效数字的概念,因此小数点后的零与存储的值无关。

其次,当您这样做时echo $td;,PHP将输出的字符串表示形式 float 4。同样,在不以某种方式指定要显示n个小数位的情况下,PHP将忽略任何尾随零。再举一个例子,如果你这样做

$td = 4.00010000;
echo $td;
Run Code Online (Sandbox Code Playgroud)

你会看到

4.0001

这就是为什么其他答案/评论会引导您寻求格式化解决方案的原因。因为您真正需要做的是不更改变量的类型,因为它已经存储在适当的类型中。您只需要指定将其转换为字符串时应如何显示。有不同的方法可以做到这一点。如果使用printf,则可以指定要显示的小数位数。例如,这是使它显示一个的方法:

printf('%.1f', $td);
Run Code Online (Sandbox Code Playgroud)

'%.1f'是一个格式字符串。该.1部分告诉它显示一位小数。但是您没有更改类型。它只是输出格式。

* 这是PHP的本机类型的列表。我有点弄错了,它确实表明float是aka double。