比方说我有
$foo = bcsub(bcdiv(1, 3, 20), 0.00001, 20);它会给我返回0.33333333333333333333
如果我有
$foo = bcsub(bcdiv(1, 3, 20), 0.0001, 20);它会给我返回0.33323333333333333332
如果我有
$foo = bcsub(0.333333333333333333, 0.00001, 20);它会给我返回0.33333333333333331483
如果我有
$foo = bcsub(0.333333333333333333, 0.0001, 20);它会给我返回0.33323333333333331482
那么为什么它不能正确地减去,它是浮点数的东西呢?但仅当bcdiv(1,3,20)时,它工作得很好
发布于 2011-07-04 18:48:53
使用字符串而不是浮点数作为BC函数的参数:
$foo = bcsub(bcdiv("1", "3", "20"), "0.00001", "20");如果你使用浮点型(如0.00001),PHP会将这个数字转换成浮点型,这是不精确的。如果您使用字符串(即"0.00001"),BC将转换为任意精度的数字,这是精确的。
https://stackoverflow.com/questions/6570391
复制相似问题