0
일부 숫자를 서로 백분율로 변환하고 싶습니다. 다음 코드는 몇 번이나 작동하지만 너무 자주 소수점 자리를 벗어납니다.PHP : 숫자를 백분율로 변환
문제는 round();
기능입니다. 아래의 예에서 백분율 값이 100.01에 추가되는 것을 볼 수 있습니다. 이것은 내 파이 차트를 어지럽 힙니다. :(
어떻게이 문제를 해결할 수 있습니다 그래서 함께 추가 할 때 해당 백분율 값은 항상 100 명중합니다
$total['one']['value'] = '158';
$total['two']['value'] = '129';
$total['three']['value'] = '121';
$total['all'] = $total['one']['value'] + $total['two']['value'] + $total['three']['value'];
$total['one']['percent'] = round(($total['one']['value']/$total['all']) * 100, 2);
$total['two']['percent'] = round(($total['two']['value']/$total['all']) * 100, 2);
$total['three']['percent'] = round(($total['three']['value']/$total['all']) * 100, 2);
반환 값 :?. OP에서 $total
와
Array
(
[one] => Array
(
[value] => 158
[percent] => 38.73
)
[two] => Array
(
[value] => 129
[percent] => 31.62
)
[three] => Array
(
[value] => 121
[percent] => 29.66
)
[all] => 408
)
항상 정확히 3 개의 값이 있습니까? – Mooseman
네,하지만 어떤 금액으로도 사용할 수 있어야한다고 생각합니다. – ditto
[부동 소수점 연산이 깨졌습니까?] (http://stackoverflow.com/questions/588004/is-floating-point-math-broken) –