हम कुछ float f = 52.92;
करते हैं। वास्तव में, यह मान 52.91999816894531
जैसा मान रखेगा। लेकिन मैं उन गैर-महत्वपूर्ण अंकों को छेड़छाड़ करने वाले जेसन-स्ट्रिंग का उपयोग करके इसे अपने वेब-ऐप में भेजना चाहता हूं। यह मैं कैसे करूंगा?जेएसओएन को एन्कोड करते समय फ्लोट को% .2f प्रारूप में कैसे छोटा करें?
{"price": 52.92}
कोड मैं का उपयोग करें::
float f = 52.92;
JSONObject js_price = new JSONObject();
js_price.put("price", f);
Log.d("json", js_price.toString());
इस बदसूरत json उत्पादन:
नतीजतन, मैं इस json स्ट्रिंग प्राप्त करने की आवश्यकता
{"price": 52.91999816894531}
इसके अलावा, मैं "price"
को जेसन में एक संख्या प्रारूप होने की आवश्यकता है, स्ट्रिंग नहीं।
पहली जगह कीमतों के लिए 'BigDecimal' के बजाय' float' का उपयोग क्यों कर रहे हैं? जब भी मूल्य स्थानांतरित किया जाता है/छेड़छाड़ की जाती है, तो आप लगातार उन सभी फ़्लोटिंग पॉइंट मुद्दों को ठीक करना जारी रखते हैं और निश्चित संख्या प्रारूप में इसकी अपेक्षा की जाती है। – BalusC
बिगडेसिमल मेरे द्वारा आवश्यक उद्देश्यों के लिए अधिक नेतृत्व में प्रतीत होता है ... – Prizoff