2012-06-14 14 views
9

मान लीजिए कि मैं floatintJava में राउंड करना चाहता हूं।
उदाहरण के लिए,जावा में कोई छत (फ्लोट) क्यों नहीं है?

roundUp(0.2) = 1 
roundUp(0.7) = 1 
roundUp(1.3) = 2 
... 

मैं Math.ceil और Math.round कॉल करने के लिए है कि क्या करना चाहते हैं लेकिन java.lang.Mathceil(float) प्रदान नहीं करता है। यह केवल ceil(double) प्रदान करता है। तो मेरी floatdouble करने के लिए प्रोत्साहित किया जाता है चुपचाप, ceil(double) रिटर्न double और round(double) रिटर्न long जब मैं ऊपर floatint (नहीं long) के दौर की जरूरत है।

अब मुझे आश्चर्य है कि क्यों java.lang.Math में केवल ceil(double) है और इसमें ceil(float) नहीं है।

+3

मुझे कुछ छोटे मनोरंजन के साथ नोट है कि आपके उदाहरणों की संख्या दोगुना है, फ्लोट नहीं! –

उत्तर

15

आप कर सकते हैं:

value = (int) Math.ceil(value); 

आप जानते हैं कि value एक नाव तो आप float या int वापस करने के लिए परिणाम डाल सकता है।

यह जावा पुस्तकालय दोनों ceil(float) और ceil(double) सभी नाव तर्क एक ही परिणाम के साथ ceil(double) विधि करने के लिए पारित किया जा सकता के रूप में प्रदान करने के लिए कोई मतलब नहीं है।

+1

+1 या 'int intValue = (int) Math.ceil (मान);' –

+0

@ पीटर लेवरी: धन्यवाद, मैंने जवाब अपडेट कर दिया है क्योंकि प्रश्न वास्तव में 'int' प्राप्त करने के बारे में है। –

+0

मैं कास्टिंग से बचना चाहता हूं। यह सुरक्षित नहीं दिखता है। – Michael