जावा में शून्य की ओर कैसे गोल करें?जावा में शून्य की तरफ राउंड
तो -1.9 -1.0 और -0.2 बन जाता है 0.0, 3.4 3.0 हो जाता है और इसी तरह।
Math.round()
कुछ पैरामीटर बदलने में सक्षम है?
जावा में शून्य की ओर कैसे गोल करें?जावा में शून्य की तरफ राउंड
तो -1.9 -1.0 और -0.2 बन जाता है 0.0, 3.4 3.0 हो जाता है और इसी तरह।
Math.round()
कुछ पैरामीटर बदलने में सक्षम है?
मैं नहीं मानता मानक पुस्तकालय इस तरह के एक समारोह है।
समस्याहै कि आप बहुत अलग व्यवहार (गणितीय बोल) के लिए पूछ रहे हैं कि क्या संख्या बड़ा या 0 से छोटी है पर निर्भर करता है (यानी ऋणात्मक मानों के लिए साइन अप गोलाई, सकारात्मक मूल्यों के लिए नीचे गोलाई)
पीछा कर रहा है विधि का इस्तेमाल किया जा सकता है:
public double myRound(double val) {
if (val < 0) {
return Math.ceil(val);
}
return Math.floor(val);
}
+1: एकमात्र उत्तर अब तक सही चीज़ (AFAICS) करता है। –
ऐसा लगता है कि आप हमेशा गोल-डाउन करना चाहते हैं? आप Math.floor
बजाय
public static double floor(double a)
सबसे बड़ा (सकारात्मक अनंत के लिए निकटतम) डबल मूल्य कि तर्क से बड़ा नहीं है और एक गणितीय पूर्णांक के बराबर है रिटर्न उपयोग कर सकते हैं। विशेष मामले:
'Math.floor()' राउंड की तरफ अनंतता, शून्य नहीं। –
सिर्फ int के लिए कास्टिंग आपके लिए ऐसा करेगा?
संपादित करें: आप एक डबल बनाए रखने के लिए चाहते हैं, तो इस बस पर्याप्त काम करना चाहिए:
if (val < 0)
return -Math.floor(-val);
else
return Math.floor(val);
और बस लोग हैं, जो नि: शुल्क कोड शाखा और लगता है थोड़ा अधिक चतुर चाहते हैं के लिए:
long tmp = Double.doubleToLongBits(val);
tmp >>>= 63;
return Math.floor(val) + tmp;
BigDecimal
कई rounding options प्रदान करता है। इस तरह लंबे समय तक के लिए
विशेष रूप से, यह ओपी की आवश्यकता को हल करने के लिए नीचे होगा जो कि फ्लोर से भिन्न है, सही गणितीय व्यवहार का पालन करता है। – demongolem
डाली:
float x= 1.9;
long y = (long)x;
यह शून्य की ओर सकारात्मक और नकारात्मक दोनों संख्या दौर।
RoundingMode.DOWN
का उपयोग करें, यह शून्य की ओर जाता है।
उदाहरण:
BigDecimal value = new BigDecimal("1.4");
value = value.setScale(0, RoundingMode.DOWN);
System.out.println(value.doubleValue());
BigDecimal value1 = new BigDecimal("-1.4");
value1 = value1.setScale(0, RoundingMode.DOWN);
System.out.println(value1.doubleValue());
क्या 'बिगडिसीमल' उन सभी मानों का प्रतिनिधित्व कर सकता है जो 'फ्लोट' या 'डबल' का प्रतिनिधित्व कर सकते हैं? –
बिगडेसिमल जावा में किसी संख्या का प्रतिनिधित्व करने का तरीका है, इसलिए BigDecimal – mprabhat
@ ओली हां का उपयोग करना समझ में आता है। बिगडेसिमल एक मनमाना सटीक दशमलव है, यह सभी मूल्यों को एक फ्लोट और डबल कैन और अधिक का प्रतिनिधित्व कर सकता है। – Dunes
आप भी इस कोशिश कर सकते हैं:
public static void main(String[] args) {
Double myDouble = -3.2;
System.out.println(myDouble.intValue()); //Prints -3
}
y=sign(x)*floor(abs(x))
या
y=sign(x)*round(abs(x)-0.5)
यह जावा में लागू करने के लिए आसान होना चाहिए।
'x-x% 1' (केवल जावा में) – Museful