سؤال

في التطبيق لدينا ، ونحن حاليا نعيش مع إرث قرار لتخزين جميع البيانات الهندسية في قاعدة البيانات في سي.

أخشى أننا قد تتعرض لخطر عدم وجود قدر كاف من الدقة والدقة في قاعدة البيانات الخاصة بنا أو في .صافي أنواع رقمية.أنا قلق أيضا أن نرى القطع الأثرية من النقطة العائمة الرياضيات (على الرغم من أن ربما كان هذا هو سؤال كل إلى نفسه).

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

عندما كنا 'موحد' عدد ، أيعندما نقوم بتحويل هذه الكمية الخاصة بنا استمرار ربما تحويلها إلى السلطة الفلسطينية (Pascals) والتي سوف تتطلب إما بضرب أو قسمة عدد قبل عدد كبير محتمل.

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

في الوقت الحاضر نحن استخدام أوراكل تعويم النظام.مزدوجة.

ماذا يظن الناس من هذا ؟

التحديث

إجراء مزيد من البحوث قد اكتشفت وحدات القياس الدعم في القادم و# لغة (CTP وأنا أكتب).

يبدو أننا سوف تكون قادرة على F# فهم إدخال المستخدم مثل:

9.81<n/s^2> // an acceleration

سوف تكون أيضا قادرة على خلق الخاصة بنا وحدات مشتقة ووحدة النظم.

creating a derived unit for Newtons in F#
(المصدر: msdn.com)

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

المحلول

الحفاظ على شخصيات كبيرة في الاعتبار-دقة القياس.إذا كانت هذه المبادرة هو معروف فقط كله جنيه ، ثم بعد التحويل إلى السلطة الفلسطينية هناك 15 عشرية ، لا يزال هناك واحد فقط شخصية هامة.

الدقة مختلفة من دقة وأداء عمليات النقطة العائمة على الوحدات الهندسية تحتاج إلى أن تأخذ ذلك في الاعتبار أثناء عمليات - لا تخزن أكثر دقة من دقة القياس لا تستخدم أكثر دقة في حساب مما هو معروف.


تحرير:

كنت قد تنظر أيضا في استخدام NUMERIC(p,s) حيث الدقة (عدد الخانات) ومقياس (عدد الأرقام إلى يمين الفاصلة العشرية) يمكن أن تكون محددة بشكل واضح.

إذا كان هذا ليس خيارا ، والنظر في استمرار دقة معين القياس بحيث قد ذكرت و/أو استخدامها في العمليات الحسابية.

نصائح أخرى

أعتقد طالما كنت قادرة على تخزين بالضبط قدر من الدقة لديك في الواقع, لا يوجد لديك سبب للقلق.

باستخدام المثال الذي أعطيته تحويل هذه المبادرة إلى pascals (1 رطل = 6 894.75 pa), إذا كنت تأخذ قياس قول 14.7 PSI وتحويله إلى pascals أحصل على 101,352.825.أن الكثير من الدقة.كنت بحاجة لتخزين أن 101,000 تعكس الحقيقي دقة قياس, لا حساب.

نضع في اعتبارنا أن أي أرقام يمكنك استخدامها للقيام التحويل تحتاج إلى أن تكون على الأقل دقيقا كما القياسات الخاصة بك حتى لا تفقد الدقة أثناء عملية التحويل.فمن الأفضل أن يكون أكثر من الأرقام من الدقة (واحدة على الاقل) في عوامل التحويل من القياسات الخاصة بك.

أعتقد البيانات الهندسية عادة ليست دقيقة بما يكفي للقلق حول الفرق.تعرف المهندس التعبير "قياس الميكرومتر ، علامة عليه مع الطباشير, قطع بفأس".يجمع حول هذا الامر.القلق حول الفرق بين 8 شخصيات كبيرة أو 12 في الحساب على ما هو مبني في العالم الحقيقي إلى 2 شخصيات كبيرة التسامح فقط لا معنى له.

لتجنب فقدان الدقة بسبب وحدة التحويل, يمكنك تخزين جميع البيانات التي تأتي من القياس في الوحدة التي كانت تقاس.بالطبع هذا يعني أن كنت قد ينتهي مع بعض قيم ضغط يجري تخزينها في السلطة الفلسطينية ، والبعض الآخر في هذه المبادرة ، أو حتى زئبق.عليك أن تقرر بنفسك إذا كان هذا يدخل من المشاكل أكثر مما يحل.

وأنا أتفق مع إجابات أخرى:في معظم الحالات, الدقة التي تقدمها Oracle تطفو هو أعلى بكثير من دقة القياس نفسها.

حسنا, هذا يعتمد على كيف بالضبط كنت تريد أن تكون.تذكر عندما نتحدث عن الهندسة فإنه لا يكفي مجرد تخزين عدد 3.20, لأن 3.2 ليس نفس 3.20 عندما يتعلق الأمر الهندسة.3.20 يعني دقة أعلى من 3.2, التي يمكن أن تكون 3.15 <= x < 3.25.

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