"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تحافظ على الأصفار الزائدة عندما يطفو حشد في Go Json؟

كيف تحافظ على الأصفار الزائدة عندما يطفو حشد في Go Json؟

نشر في 2025-03-25
تصفح:308

How to Preserve Trailing Zeros When Marshaling Floats in Go JSON?

الحفاظ على الأصفار المتري في json marshaled tell-point number

يمكن أن يؤدي ذلك إلى فقدان الدقة في سيناريوهات معينة. يمكن أن يكون هذا السلوك مشكلة إذا كانت البرامج الخارجية تتوقع أرقامًا عائمة مع الأصفار الزائدة. إليك مثال:

اكتب knowzero float64 func (f knowzero) marshaljson () ([] byte ، error) { إذا float64 (f) == float64 (int (f)) { إرجاع [] بايت (strconv.formatfloat (float64 (f) ، 'f' ، 1 ، 32)) ، لا شيء } إرجاع [] بايت (strconv.formatfloat (float64 (f) ، 'f' ، -1 ، 32)) ، لا شيء }

في هذا النوع المخصص ، تقوم طريقة Marshaljson () بتحويل العوام إلى سلسلة ذات مكان واحد عشري (إذا كان رقمًا كاملًا) أو يحافظ على جميع الأماكن العشرية (إذا لم يكن رقمًا كاملًا).

قيمة knowzero سلسلة الوحدة } Func Main () { البيانات ، err: = json.marshal (pt {value: 40.0 ، الوحدة: "some_string"}) fmt.println (سلسلة (بيانات) ، خطأ) }

يخرج هذا الرمز {"value": 40.0 ، "unit": "some_string"} & lt ؛ nil & gt ؛ ، الحفاظ على الصفر في الإخراج json.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3