$value = rand(0.1, 0.3);
然后输出返回0
任何可以解决此问题的答案?
我已经尝试过使用
了$value = 0.01*rand(1, 3);
我仍然得到0
答案 0 :(得分:3)
函数rand();只接受整数而不是浮点数值。
答案 1 :(得分:0)
The documentation说明了一切:
rand
- 生成随机整数
因为您要传递浮动广告(0.1
和0.3
),所以它们会转换为int
,结果与此完全相同:
rand(0, 0)
根据上述情况,唯一的结果可能是从rand(0.1, 0.3)
获得0
(零)。要获得其他东西,请将其基于整数。
解决方案很简单,只需使用整数进行计算。如果您想要满足您需求的功能,可以使用此代码($places
是您想要在积分部分后计算的位数):
function float_rand($start, $end, $places){
$multiplier = pow(10, $places);
return rand($start * $multiplier, $end * $multiplier) / $multiplier;
}