मैं jsoncpp का उपयोग कर JSON फ़ाइल से पढ़ रहा हूं। जब मैं फ़ाइल पर वापस लिखता हूं, तो मेरे फ्लोट वैल्यू थोड़ा दूर होते हैं। परीक्षण के लिए, मैंने फ़ाइल को जेसन :: वैल्यू पर पार्स करने का निर्णय लिया और फिर उस मान को फ़ाइल में वापस लिखें। मैं इसे एक जैसा दिखने की उम्मीद करता हूं, लेकिन इसके बजाय फ्लोट वैल्यू अलग-अलग हैं।Jsoncpp फ़्लोट मानों को गलत तरीके से लिख रहा है
उदाहरण:
"Parameters":
{
"MinXValue": 0.10000000000000001,
"MaxXValue": 0.14999999999999999,
"MinYValue": 0.25,
"MaxYValue": 1.1000000238418579,
"MinObjectSizeValue": 1
}
आप देख सकते हैं कि 0.25 परिवर्तन नहीं किया है, भले ही अन्य तैरता के सभी किया:
"Parameters":
{
"MinXValue": 0.1,
"MaxXValue": 0.15,
"MinYValue": 0.25,
"MaxYValue": 1.1,
"MinObjectSizeValue": 1
}
के रूप में लिखते हैं। कोई विचार क्या हो रहा है?
कुछ फ़्लोटिंग पॉइंट मानों को बाइनरी में बिल्कुल दर्शाया जा सकता है और कुछ नहीं कर सकते हैं। जो आप देख रहे हैं वह आपके मूल्यों का सबसे नज़दीकी प्रतिनिधित्व है। –
फ़्लोटिंग पॉइंट नंबर सटीक नहीं हैं। वे सीमित स्मृति में सबसे अच्छा प्रतिनिधित्व कर रहे हैं। पीएस 0.25 बाइनरी में काम करने के साथ एक चौथाई-सारांश है ;-) –
स्पष्टीकरण के लिए धन्यवाद। क्या इससे बचने का कोई तरीका है? – SFBA26