بوابة الثانوية العامة المصرية

بوابة الثانوية العامة المصرية (https://www.thanwya.com/vb/index.php)
-   أرشيف المنتدى (https://www.thanwya.com/vb/forumdisplay.php?f=513)
-   -   سؤال لكل مدرسي الحاسب (https://www.thanwya.com/vb/showthread.php?t=193205)

kinghero 11-03-2010 06:08 PM

سؤال لكل مدرسي الحاسب
 
أريد معرفة لماذا لا يمكن تحويل النوع single & double الي النوع Decimal بالتحويل المباشر مع العلم بأن single & double سعتهم التخزنية أقل من الـ Decimal

ممدوح مصطفى الانصارى 11-03-2010 06:13 PM

اهلا بحضرتك فى المنتدى
وانتظر بامر الله الجواب على سؤالك
من اساتذة الحاسب فى المنتدى
جزاهم الله كل الخير

سيف سالم 11-03-2010 09:35 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة kinghero (المشاركة 2041206)
أريد معرفة لماذا لا يمكن تحويل النوع single & double الي النوع Decimal بالتحويل المباشر مع العلم بأن single & double سعتهم التخزنية أقل من الـ Decimal

http://www.thanwya.com/vb/showthread.php?t=193241

سليم سلامة 11-03-2010 10:38 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة kinghero (المشاركة 2041206)
أريد معرفة لماذا لا يمكن تحويل النوع single & double الي النوع Decimal بالتحويل المباشر مع العلم بأن single & double سعتهم التخزنية أقل من الـ Decimal

هذا كان رد أ/ سيف على إجابة السؤال
ان عملية التحويل بين الانواع المختلفة قد شغل الجميع
وقد احتار الكل
كيف لا يمكن التحويل من double و single الى decimal بالرغم من ان الاخير هو الاكبر ( 16 Byte ) و 29 خانة

لازالة الحيرة

التحويل المباشر و الغير مباشر


widening conversion

narrowing conversion

implicit conversion

explicit conversion

الكلمات الاربع السابقة هي المفتاح

وطبعا الترجمة

الواسع

الضيق

الضمني

الصريح

ان كتاب المدرسة قد خلط بين الكلمات
كيف ؟ سنوضح ذلك

بالرجوع الةى msdn
وجد الاتي

A widening conversion changes
a value to a data type that can accommodate any possible value of the original data.


A narrowing conversion changes
a value to a data type that might not be able to hold some of the possible values.

An implicit conversion does not require any special syntax in the source code. In the following example, Visual Basic implicitly converts the value of k to a single-precision floating-point value before assigning it to q.


Dim k As Integer
Dim q As Double
' Integer widens to Double, so you can do this with Option Strict On.
k = 432
q = K



An explicit conversion uses a type conversion keyword. Visual Basic provides several such keywords, which coerce an expression in parentheses to the desired data type. These keywords act like functions, but the compiler generates the code inline, so execution is slightly faster than with a function call.


مما سبق نلاحظ ان

التحويل ليس بين الانواع
ولكن بين القيم

كما ان المباشر هو من لا يحتاج الى كلمات او دوال
والغير مباشر هو الذي يعتمد على كلمات ودوال للتحويل


بالرجول الي القيم نجد ان اكبر القيم هي قيم double

For +ve values approximately 4.9*10-324
to
1.8*(10)
+308
For -ve values approximately -1.8*10+308
to -
4.9*(10)
-324
And 0

ويليها في الصغر single

For +ve values approximately1.4*(10)
-45
to
3.4*(10)
+38
For -ve values approximately -3.4*(10)
+38
to
1.4*(10)
-45
And 0

ثم decimal

ثم long ثم integer ثم short

وعليه الحيرة ان كتاب المدرسي قد ذكر ان التحويل بين الانواع

والحقيقة انه بين القيم التى يمكن تخزينها في تلك الانواع

kinghero 13-03-2010 10:11 AM

الف مليون شكر يا استاذي سيف لقد فهمت ماذا تقصد بارك الله فيك

مستر وائل ربيع 14-03-2010 07:06 PM

ميرسى جدا استاذ سليم

اسلام عمر 1 15-03-2010 11:28 PM

بارك الله لكم

alta7ady1 29-03-2010 02:43 PM

شكراااا على الشرح

ahmedkamel0000 02-04-2010 02:35 PM

جزاكم الله خيراً


جميع الأوقات بتوقيت GMT +2. الساعة الآن 10:31 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.