السلام عليكم
أبحث عن دالة أو طريقة تمكنني من الحصول على رقمين بعد الفاصلة بدون تقريب
مثال الرقم 10.996655 يكون الناتج 10.99
مشكورين مسبقا
السلام عليكم
أبحث عن دالة أو طريقة تمكنني من الحصول على رقمين بعد الفاصلة بدون تقريب
مثال الرقم 10.996655 يكون الناتج 10.99
مشكورين مسبقا
Adel Khayata كتب:السلام عليكم.
استخدم الطريقة التالية:
Math.Truncate(10.996655 * 100) / 100
lمشكور أخي
في الحقيقة لقد كنت أستخدم هده الطريقة من قبل
ولقد وقعت لي مشكلة مع الرقم 603.55 بالضبط فتكون النتيجة 603.54
وقد إكتشفت أنه يجب أن يكون المتغير من نوع DECIMAL أما أنا فقد كنت أستعمله من نوع Double
هممم، كنت اتوقع ان يكون Method جاهز في الـ .NET لهذا الغرض، لكن لم أجد!
كيف يمكن أن لا يكون لمثل هذا الأمر الشائع، أم أنا أخطأ؟
طبعا يوجد في String.
هكذا يمكن أيضا (Dirty Code ;) ):
Math.Round(10.996655 - .005, 2);
تم تعديل هذه المشاركة بواسطة موليان في 23 نوفمبر 2011 في 21:33
السلام عليكم ورحمه الله وبركاته
اخي يمكنك انشاء دالة على النحو التالي
decimal TakeN(double d, double n)
{
return Convert.ToDecimal(d.ToString().Substring(0, d.ToString().IndexOf('.')+(int)n+1));
}ومن ثم استدعاءها
MessageBox.Show(TakeN(10.946655, 2).ToString());
.:: Wish to become better and better ::.
دالة أخرى بسيطة تفي بالغرض
public static double ChoppOff(double num, int decimals)
{
num *= Math.Pow(10, decimals);
num = (int)num;
num /= Math.Pow(10, decimals);
return num;
}واستخدامها على النحو التالي:
[double ChppedOffDouble = ChoppOff(603.524505, 4);
تم تعديل هذه المشاركة بواسطة Mohammed Asaad في 27 نوفمبر 2011 في 00:56
Mohammed Asaad كتب:دالة أخرى بسيطة تفي بالغرض
public static double ChoppOff(double num, int decimals) { num *= Math.Pow(10, decimals); num = (int)num; num /= Math.Pow(10, decimals); return num; }واستخدامها على النحو التالي:
[double ChppedOffDouble = ChoppOff(603.524505, 4);
مشكورين يا إخوتي على الردود الكريمة و بارك الله فيكم ورعاكم
أخوكم ياسين