Php 如何从bcdiv函数中获得浮点部分的实数输出?

Php 如何从bcdiv函数中获得浮点部分的实数输出?,php,floating-point,divide,bcmath,Php,Floating Point,Divide,Bcmath,问题是我不知道输出中浮点部分的位数。。例如,我不能分配4。。例如n,浮点中可能有100位数字。我怎样才能解决它 bcdiv('50','3',4); //16.6666 bcdiv('50','3'); // correct output => 16.66666666666667 非常感谢您……在浮点数学中,您没有精确的精度。精度有限,因为计算机使用的是二进制,而不是我们人类习惯的十进制。因此,当你和我可以很容易地看到10/1是确切的0.1,计算机将其视为0.100000000000

问题是我不知道输出中浮点部分的位数。。例如,我不能分配4。。例如n,浮点中可能有100位数字。我怎样才能解决它

 bcdiv('50','3',4); //16.6666
 bcdiv('50','3'); // correct output => 16.66666666666667

非常感谢您……

在浮点数学中,您没有精确的精度。精度有限,因为计算机使用的是二进制,而不是我们人类习惯的十进制。因此,当你和我可以很容易地看到
10/1
确切的
0.1
,计算机将其视为
0.10000000000000055115123125782702118158340451015625
。这就是为什么我们只选择一些有限的精度,我们认为这将是足够的,并忽略了所有其他的东西在那里结束

有关更多详细信息,请参阅。

代码为:

# Suppose the value is 125.987654321012354.
$num = 1250.987654321012354;
echo $num;
$num_array = explode(".", $num);

# Floating point count.
$fCountDigit = strlen(@$num_array[1]); # Use the @ sign if there is no floating point. When the value is integer 123351
$intNumber = $num_array[0];
问题是:float的字节数限制为4字节。所以一定要记住这一点

例如:

# Suppose the value is 1250000000000.987654321012354.
$num = 1250000000000.987654321012354;
echo $num;

Output: 1250000000001 # no floating point.
也许有趣?