将变量初始化为浮点数

7

以前从未做过这样基本的事情。在进行逻辑操作之前,如何将变量初始化为浮点数?以下示例是否有意义?

$var = 0.0;

$var = (float) 0;

PHP是一种弱类型语言,特别是在处理数字时。如果它是int(0)还是float(0),这有什么关系呢? - Niet the Dark Absol
1
@myol - 不太清楚你的问题。如果你想初始化一个浮点数,是的,你可以用这种方式来做。最好使用以下方法:$var = (float) 0.0 - Phorce
3
这种问题暗示着你试图解决错误的问题。如果$var需要是一个浮点数,PHP会将它转换为浮点数,而无需你做任何事情。因此,你需要解释真正的问题以获得有价值的解决方案。 - kainaw
1
未来的程序员需要清晰明了。 - myol
即使你使用了 declare(strict_types=1);,它仍然允许 floatint 之间的互相转换。 - Niet the Dark Absol
1
什么是问题? - trincot
3个回答

2

两种方式都是合理的,第一种方式更短,第二种方式可以初始化为动态值,随你选择!

编辑:但我同意 @Niet the Dark Absol 的观点,这并不重要,因为你使用的是像 ctype_digitis_numeric 这样的测试函数。


2
来自http://php.net/manual/en/language.types.float.php
浮点数(也称为双精度或实数)是一种带有小数点或指数的数字。在PHP中,浮点数可以用以下几种方式表示:
- 浮点数直接量 - 例如3.14159265359 - 科学计数法表示法 - 例如2.1e3(等同于2.1x10³) - 可选前导符号和可选后缀类型 - 例如-123.45 或 7.89float
注意:由于浮点数运算的本质,在某些情况下会产生不精确的结果。建议在特别要求精度的场合使用BCMath扩展

Floating point numbers (also known as "floats", "doubles", or "real numbers") can be specified using any of the following syntaxes:

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>

使用$var = 0.0定义浮点数是正确的。虽然强制转换在技术上并不是错误的,但我认为当你不需要时,不应该使用它。


-1

尝试使用number_format函数。

例如:

$number = 20;
echo number_format($number,2) // will output 20.00
// number_format($number,$decimals,$dec_point,$thousands_sep)

是的,我知道。但我认为这仅适用于前端展示。在后端功能性中,将被转换为浮点数...并且总是浮点逻辑会删除小数位,如果小数位为空。 - Andrei Todorut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接