تخزين وعودة الكسور العشرية مع الدقة التي تم إدخالها المستخدم في SQL Server

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

  •  19-09-2019
  •  | 
  •  

سؤال

هل SQL Server decimal تخزين نوع البيانات العدد الفعلي للأرقام بعد العشرية لكل قيمة في عمود؟

علي سبيل المثال

UPDATE [Mixes] SET [Concentration] = 0.0012500 WHERE [Id] = 1

أين

Concentration Decimal(21,11)

هل من الممكن استرداد قيمة "0.0012500" بالضبط على النحو الذي أدخله المستخدم، أم أنه من الضروري تخزين العدد الفعلي من الأماكن العشرية التي تم إدخالها في عمود آخر؟

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

المحلول

يخزن النوع العشري القيمة الرقمية تصل إلى الدقة المحددة. لا يخزن التنسيق. انها مثل حفظ int مع الأصفار الرائدة. الأصفار الرائدة لا تغير القيمة الرقمية. إذا كان هناك حاجة إلى تنسيق إدخال المستخدم، فستحتاج إلى تخزين ذلك بشكل منفصل أو تخزين الرقم كخير Varchar.

نصائح أخرى

يجب عليك تخزين عدد الكسور العشرية بشكل منفصل.

لن تتمكن من معرفة الفرق بين 0.0012500 و 0.00125 بعد إدخالها فقط باستخدام عمود عشري. ستحتاج إلى تخزينها في نموذج نصي أو تحليل المعلومات حول كيفية إدخالها وتخزين هذه المعلومات.

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