以php双数据类型格式获取值

以php双数据类型格式获取值,php,type-conversion,Php,Type Conversion,输出为4; 但我想要双数据类型的实数(4.0) 您可以使用 echo printf(“%f\n”,$td)检查此->字符串编号\u格式(float$number[,int$decimals=0]) 文件: 这将抛出4.0“1”是您首先想要在数字中输入的小数位数,不要挑剔,但PHP没有您想要的类型*。当您执行时,$td=4.0您已经创建了一个 如果您使用var\u dump($td)检查它,您将看到:float 4。因为这里没有有效数字的概念,所以小数点后的零与存储值无关 第二,当你做echo$t

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

您可以使用


echo printf(“%f\n”,$td)

检查此->字符串编号\u格式(float$number[,int$decimals=0])
文件:


这将抛出4.0“1”是您首先想要在数字中输入的小数位数,不要挑剔,但PHP没有您想要的类型*。当您执行
时,$td=4.0您已经创建了一个

如果您使用
var\u dump($td)检查它,您将看到:
float 4
。因为这里没有有效数字的概念,所以小数点后的零与存储值无关

第二,当你做
echo$td
,PHP将输出
float 4
的字符串表示形式。同样,在不指定要显示n个小数点的情况下,PHP将省略任何尾随的零。再举个例子,如果你这样做了

$td = 4.0;
echo number_format($td,1);
你会看到

4.0001

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

$td = 4.00010000;
echo $td;
“%.1f”
是一个格式字符串。
.1
部分告诉它显示一个小数位。但是你没有改变类型。这只是输出格式


*

这给了我4.0000009美元,我只需要使用$td='4.0';echo$td;php的松散类型使得nonsense@nogad出于显示目的,4和4.0是不同的。但是有了PHP,它使用它几乎是一样的。是的,我认为他混淆了这一点。这个问题的状态是什么?有人给出了答案,但你既没有在答案下发表评论,也没有接受答案以将其标记为已解决。正如@FunkFortyNiner所说,你为什么不接受任何答案或对其发表评论?在这种情况下,$td不需要设置为4.0,它可以是$td=4是,但这不是他要求的,这将产生他要求的结果。$td=4;回波号_格式($td,1);给出与$td=4.0完全相同的结果;回音编号_格式($td,1);,所以他所要求的听起来不错。我会坚持我的答案,但谢谢你的意见。
$td = 4.00010000;
echo $td;
printf('%.1f', $td);