गोलाई संख्या पर्ल में

में पर्ल प्रोग्रामिंग भाषा, वहाँ रहे हैं कई तरीके आप कर सकते हैं की एक संख्या के एक पूर्णांक है.

पर निर्भर करता है क्या आप की जरूरत करने के लिए अंत में की जरूरत करने के लिए विभिन्न तरीकों का उपयोग करें. जब चुनने की विधि गोलाई पर ध्यान देना चाहिए कि कैसे करने के लिए की जरूरत है गोल नकारात्मक संख्या.

यहाँ एक टेबल से पता चलता है जो के परिणामों अलग अलग तरीकों की गोलाई. सभी इन तरीकों के लिए गोलाई में उपलब्ध हैं पर्ल, बॉक्स के बाहर अगर आप है पर्ल, आप का उपयोग कर सकते हैं इन तरीकों में से किसी.

                        -1.8  -1.5  -1.2   0     1.2   1.5   1.8
.................................................................
int($x)                 -1    -1    -1     0     1     1     1
POSIX::floor($x)        -2    -2    -2     0     1     1     1
int($x + 0.5)           -1    -1     0     0     1     2     2
sprintf('%.0f', $x)     -2    -2    -1     0     1     2     2
POSIX::ceil($x)         -1    -1    -1     0     2     2     2

(इस तालिका में बनाया गया था का उपयोग कर कोड https://PerlBanjo.com/bf555d3112 ).

  • int($x) — आंशिक भाग खारिज कर दिया है
  • POSIX::floor($x) — हमेशा नीचे दौर
  • int($x + 0.5) — के लिए सकारात्मक संख्या पर काम के नियम के गणितीय गोलाई, और नकारात्मक संख्या देता है बाहर कुछ बकवास
  • sprintf('%.0f', $x) — द्वारा काम करता है के नियम के गणितीय गोलाई के लिए सकारात्मक और नकारात्मक संख्या.
  • POSIX::ceil($x) — हमेशा राउंड अप

गोलाई करने के लिए कुछ दशमलव स्थानों

कैसे तरीकों में से एक एक संख्या दौर के लिए कुछ करने के लिए दशमलव स्थानों पर्ल में का उपयोग करने के लिए यह sprintf("%.2f", $x).

संख्या में %.2f का मतलब है कि आप कितना की जरूरत है छोड़ने के लिए दशमलव बिंदु के बाद अंकों. यहाँ है एक उदाहरण कोड:

▶ Run
#!/usr/bin/perl

use feature qw(say);
use Math::Trig;

say sprintf("%.0f", pi());
say sprintf("%.1f", pi());
say sprintf("%.2f", pi());
say sprintf("%.3f", pi());
say sprintf("%.4f", pi());
say sprintf("%.5f", pi());

परिणाम:

3
3.1
3.14
3.142
3.1416
3.14159

तरीके की गोलाई के नए संस्करण में पर्ल

शुरू में पर्ल 5.22 में मानक वितरण के पर्ल सुविधाओं को लागू किया POSIX::trunc() और POSIX::round(), और पर्ल 5.24 समारोह के POSIX::lround(). यहाँ है तालिका के साथ परिणाम के तरीके के सभी (https://PerlBanjo.com/4314405cde ):

                        -1.8  -1.5  -1.2   0     1.2   1.5   1.8
.................................................................
int($x)                 -1    -1    -1     0     1     1     1
POSIX::trunc($x)        -1    -1    -1     0     1     1     1
POSIX::floor($x)        -2    -2    -2     0     1     1     1
int($x + 0.5)           -1    -1     0     0     1     2     2
POSIX::round($x)        -2    -2    -1     0     1     2     2
POSIX::lround($x)       -2    -2    -1     0     1     2     2
sprintf('%.0f', $x)     -2    -2    -1     0     1     2     2
POSIX::ceil($x)         -1    -1    -1     0     2     2     2

परिणाम POSIX::trunc($x) इस तालिका में वही कर रहे हैं के रूप में int($x). और बिल्कुल एक ही परिणाम POSIX::round($x) और POSIX::lround($x) इस तालिका में वास्तव में, के रूप में एक ही sprintf('%.0f', $x).

अन्य लेख