我希望有人可以帮助我解决这个问题,因为它让我发疯。首先关闭以下变量的一些背景和值。
$TritPrice
变量因来自其他来源而波动,但举例来说,可以说它的值为5.25
$ RefineTrit在1000
不变,$Minerals[$oretype][0]
为333
当我第一次转到此代码所在的页面时,此函数由于某种原因而运行,$TritPrice
var将被截断为5.00
或向下舍入,但仅在公式本身期间。我可以回显每个变量并且它们是正确的但是当我回显公式并手动进行数学计算时,$TritPrice
只是5
而不是5.25
。
如果我在if语句之前输入$TritPrice = 5.25;
它可以正常工作,并且在提交表单后重新运行此函数它可以正常工作。
使用此功能的页面位于here,如果你想知道它的作用。
If ($Minerals[$oretype][1] <> 0) {
$RefineTrit = getmintotal($oretype,1);
if ($RefineTrit < $Minerals[$oretype][1]) {
$NonPerfectTrit = $Minerals[$oretype][1] +
($Minerals[$oretype][1] - $RefineTrit);
$Price = (($TritPrice * $NonPerfectTrit) / $Minerals[$oretype][0]);
} else {
$Price = $TritPrice * $RefineTrit / $Minerals[$oretype][0];
}
}
这是$ TritPrice
的地方// Get Mineral Prices
GetCurrentMineralPrice();
$TritPrice = $ItemPrice[1];
$PyerPrice = $ItemPrice[2];
$MexPrice = $ItemPrice[3];
$IsoPrice = $ItemPrice[4];
$NocxPrice = $ItemPrice[5];
$ZydPrice = $ItemPrice[6];
$MegaPrice = $ItemPrice[7];
$MorPrice = $ItemPrice[8];
和GetCurrentMineralPrice()函数是
function GetCurrentMineralPrice() {
global $ItemPrice;
$xml = simplexml_load_file("http://api.eve-central.com/api/marketstat?typeid=34&typeid=35&typeid=36&typeid=37&typeid=38&typeid=39&typeid=40&typeid=11399&usesystem=30000142");
$i = 1;
foreach ($xml->marketstat->type as $child) {
$ItemPrice[$i] = $child->buy->max;
$i++;
}
return $ItemPrice;
}
答案 0 :(得分:0)
问题不在于这段代码。在程序的其他部分,我怀疑它是接受文本框中的值并将其输入公式的位置 - 在该位置应该有一个函数或代码片段,它将$ TritPrice的值四舍五入。检查获取$ _POST值的位置,并检查是否有任何javascript代码在后台执行parseInt。
答案 1 :(得分:0)
EVE-Online ftw。
如果不这样做,配置中的精度值可能设置得太低了?除非你手动更改它,否则不确定为什么会这样。或者你有一个函数在某个地方运行,当你从该函数/ var
中调用它时,它会截断你的变量但是,您可以将其他代码粘贴到您实例化$ TritPrice吗?