لماذا تقسيم JSP / JSTL بحلول عام 1000 في بعض الأحيان تعطي الباقي؟

StackOverflow https://stackoverflow.com/questions/1002430

  •  05-07-2019
  •  | 
  •  

سؤال

عند قسمة 1000 I وقت تشغيل عبر الخلل الذي لا يفعل تقسيم "بشكل صحيح". على سبيل المثال، عند تقسيم 90.55 بحلول عام 1000 بدلا من الحصول على 0.09055 أحصل 0،090549999999.

<c:out value="${bean.paPrice / 1000}" />

لماذا يحدث هذا؟ هل هذا نتيجة العائمة الرياضيات النقطة؟ يبدو جوجل للبحث تشير إلى أن هذا قد يكون المذنب، ولكن لم أجد أي إجابة محددة.

لإصلاح هذه يمكنني جولة الإجابة على 5 أرقام، ولكن يبدو أن هذا هو مجرد تصحيح لمشكلة أعمق.

<fmt:formatNumber type="number" maxFractionDigits="5" value="${bean.paPrice / 1000}" />
هل كانت مفيدة؟

المحلول

وانها ليست مشكلة، انها مجرد نتيجة طبيعية لتمثيل ثنائي النقطة العائمة. جولة قيمك ولا تقلق بشأن ذلك.

نصائح أخرى

لماذا لا تمتص أجهزة الكمبيوتر في الرياضيات؟

http://www.codinghorror.com/blog/archives/001266.html

نعم، هذا هو الفاصلة العائمة شكل القضية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top