आइए इस स्थिति पर विचार करें:

from math import sqrt

x = sqrt(19) # x : 4.358898943540674

print("{:.4f}".format(x))
# I don't want to get 4.3589
# I want to get 4.3588

print() फ़ंक्शन स्वचालित रूप से संख्या को गोल करता है, लेकिन मुझे यह नहीं चाहिए। मुझे क्या करना चाहिए?

1
user7868540 1 अप्रैल 2018, 01:14

2 जवाब

प्रारंभ में अधिक कार्य करें और अतिरिक्त अंकों की एक निश्चित संख्या काट दें:

from math import sqrt

x = sqrt(19) # x : 4.358898943540674

print(("{:.9f}".format(x))[:-5])

वांछित परिणाम देता है। यह तब भी विफल हो सकता है यदि x का रूप ?.????999996 या समान है, लेकिन इन संख्याओं का घनत्व अपेक्षाकृत छोटा है।

0
Lutz Lehmann 1 अप्रैल 2018, 12:55

यहाँ एक तरीका है। truncate फ़ंक्शन @user648852 के सौजन्य से।

from math import sqrt, floor

def truncate(f, n):
    return floor(f * 10 ** n) / 10 ** n

x = sqrt(19) # x : 4.358898943540674

print("{0}".format(truncate(x, 4)))
# 4.3588
0
jpp 1 अप्रैल 2018, 11:39