मैं जानता हूँ कि यह एक पुराने विषय है, हालांकि Google में दिखाई देता है। मैं परिशुद्धता के बारे में ब्लेक प्लंब के जवाब का विस्तार करूंगा।
ceil(1024.321 * 100)/100;
100 से गुणा करके 100 से विभाजित केवल एक सौवां के साथ काम करता है। यह दसवां पर सही, एक हजारवें हिस्से, एक सौ हजारवें, आदि
function round_up($number, $precision = 2)
{
$fig = pow(10, $precision);
return (ceil($number * $fig)/$fig);
}
परिणाम नहीं है:
var_dump(round_up(1024.654321, 0)); // Output: float(1025)
var_dump(round_up(1024.654321, 1)); // Output: float(1024.7)
var_dump(round_up(1024.654321, 2)); // Output: float(1024.66)
var_dump(round_up(1024.654321, 3)); // Output: float(1024.655)
var_dump(round_up(1024.654321, 4)); // Output: float(1024.6544)
var_dump(round_up(1024.654321, 5)); // Output: float(1024.65433)
var_dump(round_up(1024.654321, 6)); // Output: float(1024.654321)
नोट्स:
से योगदान के लिए धन्यवाद जोसेफ मैकडर्मॉट और ब्रैंडम मेरे मूल स्निपेट को बेहतर बनाने के लिए।
कभी कभी 'ceil' (या' floor':
यह शून्य और नकारात्मक सटीक मूल्यों तों के साथ भी काम करना चाहिए) गोल करने के लिए सही जवाब नहीं है। आप आसानी से एक गणना परिणाम प्राप्त कर सकते हैं जो अप्रत्याशित रूप से व्यवहार करेगा: 'छत ((0.1 + 0.2) * 10)' 4' उत्पादन करता है! – Walf