我有一个大整数值数组。使用print_r()
打印时,值是正确的,但是当我将数组内部的值分配给变量并使用printf
进行打印以获得精度时,值会有所不同。
$this->v0 = $this->myArray[0];
$this->v1 = $this->myArray[1];
$this->v2 = $this->myArray[2];
$this->v3 = $this->myArray[3];
print_r($this->myArray);
printf("v0: %.0F | v1: %.0F | v2: %.0F | v3: %.0F\n", $this->v0, $this->v1, $this->v2, $this->v3);
打印出来
Array
(
[0] => -8845908906223371573
[1] => -7688304550669780974
[2] => -7337754985657963041
[3] => -8842903914599747060
)
v0: -8845908906223371264 | v1: -7688304550669780992 | v2: -7337754985657963520 | v3: -8842903914599746560
编辑:我使用的是Mac OS X 10.11.3并使用PHP 7.0.4
真的不确定这里发生了什么,但任何帮助都会很棒。谢谢!
答案 0 :(得分:3)
要解决您的问题,您必须使用双%.0d
代替%.0f
$value = '-8845908906223371573';
print_r($value);
echo "\n";
printf("v0: %.0d",$value);
echo "\n";
-8845908906223371573
v0: -8845908906223371573