سؤال

لعدد من الأسباب، لا بد لي من استخدام العوامات في التعليمات البرمجية بدلا من الزوجي. لاستخدام حرفي في التعليمات البرمجية الخاصة بي، يجب أن أكتب شيئا مثل:

float f = 0.75F;

أو المحول البرمجي سوف بارف لأنه يعامل فقط "0.75" باعتباره مزدوج. هل هناك أي شيء يمكنني وضعه في التعليمات البرمجية أو تعيينه في Visual Studio الذي سيجعله يعامل حرفيا مثل "0.75" كعطف دون الحاجة إلى إلحاق "F" في كل مرة؟

هل كانت مفيدة؟

المحلول

تعويم يأتي مع F :-)

نصائح أخرى

لا - لحسن الحظ، المنظمة البحرية الدولية. يتم التعامل مع الحرف بنفس الطريقة في كل مكان.

هذا شيء جيد - تخيل بعض مطور الصيانة ويطلع إلى التعليمات البرمجية الخاصة بك في غضون عام. يرى "0.75" ويعتقد "أعرف C # - هذا مزدوج! تعليق، كيف يتم تعيينها إلى متغير تعويم؟" ick.

هل هو حقا مؤلمة جدا لإضافة "F" في كل مكان؟ هل لديك حقا الذي - التي العديد من الثوابت؟ هل يمكنك استخراجها كما القيم الثابتة، لذلك جميع الحرفية الخاصة بك "F لاحقة" في نفس المكان.

FYI - يمكنك العثور على جميع خيارات المحول البرمجي ل C # في http://msdn.microsoft.com/en-us/library/6ds95cz0.aspx.. وبعد إذا قمت بالتحقق من هناك، فستشاهد أنه لا يوجد أي خيار يسمح بذلك - وعلى الأرجح لأسباب أن Jon Skeet لاحظت.

اللغة تفسر اللغة العائمة الدقة الحرفية مثل الزوجي في كل مكان. هذه ليست ميزة قابلة للتكوين للمترجم - ومع سبب وجيه.

تكوين كيفية أن تؤدي اللغة التي تفسرها رمزك إلى مشاكل مع كل من التوافق وقدرة مطوري الصيانة على فهم ما يعنيه الرمز.

في حين لا ينصح بشكل عام، يمكنك تقليل الألم قليلا في C # 3 باستخدام:

var f = 0.75F;

فقط كن حذرا، لأن نسيان لاحقة "F" مع بناء هذا الجملة سيؤدي إلى إنشاء المحول البرمجي مزدوجا وليس تعويما.

أود أن أنصحك أن تستخدم دائما

var meaning = 1f;

لأن الكلمة الأساسية "فار" توفر الكثير من التفسير البشري ووقت الصيانة البشرية.

لن يكون السلوك المناسب للمترجم لتفسير الحرفي غير اللاحق كطابع دقيق، بل هو إدراك أن التحويلات من المزدوج إلى تطفو يجب اعتبار التحويلات المتوسطة منذ ذلك الحين، لكل double القيمة، هناك إما صحيح تماما بشكل لا لبس فيه float تمثيل، أو (في عدد قليل من الحالات الحافة النادرة) سيكون هناك قيم اثنين على وجه التحديد، ولا سيكون أيا منهما أكثر من جزءا من كونه القيمة الصحيحة بشكل لا لبس فيه. دلالة، التحويلات من float ل double يجب اعتبار التحويلات الضيقة (نظرا لأنها تتطلب من المترجم "تخمين" بالمعلومات التي لا تملكها)، ولكن الصعوبات العملية التي قد تؤدي إلى تبرير التحويلات في هذا الاتجاه "اتساع".

ربما يتعين على المرء التماس Microsoft لإضافة تحويل توسيع من double ل floatب ليس هناك سبب وجيه يجعل الكود الذي يحسب إحداثيات الرسومات double يجب أن تشوش مع typecasts عند استدعاء وظائف الرسم.

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