PDA

View Full Version : سوال: نمایش اعداد در dataGridView و textBox :اعداد بعد از ممیز اگر صفر بود حذف و اگر صفر نبود باقی بمانند!



محمد قانعی
یک شنبه 10 اسفند 1393, 20:48 عصر
با سلام.
من توی دیتابیسم اعداد مربوط به موجودی رو با فرمت( decimal(15, 2 ذخیره می کنم(یعنی با 2رغم اعشار)
حالا مخوام توی dataGridView و textBox اعداد رو جوری نمایش بدم که اگه عدد اعشاری بود با اعشار و اگه عدد بدون اعشار بود، بدون ممیز و دو تا صفر بعدش نمایش داده بشه.
یعنی مثلا عدد 123/12 رو همین جوری ولی عدد 123/00 رو به صورت 123 نمایش بده!

محمد قانعی
یک شنبه 10 اسفند 1393, 21:57 عصر
من توی dataGridView قسمت defaultcellstyle فرمت رو #,#.### وارد کردم درست شد!
ولی هنوزم برای textBox نمی دونم چیکار کنم!:عصبانی++:

محمد قانعی
دوشنبه 11 اسفند 1393, 18:38 عصر
سلام.
من با فرمت #,#.### توی dataGridView دقیقاً به همون چیزی که می خواستم رسیدم.فقط
1- وقتی عددم صفر هست نمیتونه نشونش بده. کسی نمی دونه چرا؟
2- من میخوام به جای نقطه . ممیز / نشون بده. کسی نمی دونه باید چی کار کنم . هر کاری می کنم درست نمی شه.:متفکر:(مثلا به جای 123.12 به صورت 123/12 نشون بده)
از اساتید تقاضا دارم کمکم کنن.:لبخند:

FastCode
سه شنبه 12 اسفند 1393, 10:59 صبح
باید در تنظیمات سیستم این تغییر رو انجام بدید.
در ویندوز: control panel/regional and language options
در گنوم: control center/keyboard settings/formats

محمد قانعی
سه شنبه 12 اسفند 1393, 11:17 صبح
با تشکر فراوان از FastCode (http://barnamenevis.org/member.php?109710-FastCode) عزیز.
خیلی عالیه فقط یه سئوال : الان برای من درست نشون میده، ولی آیا برای سیستم مشتری هم درست نمایش میده یا برای اون باید همین تنظیمات رو انجام داد.:متفکر:

plus
سه شنبه 12 اسفند 1393, 11:37 صبح
باید برای هر مشتری انجام بدین. البته میتونید به صورت دستی، تنظیمات Culture برای Thread جاری رو به صورت زیر تغییر بدین:

var currentThread = System.Threading.Thread.CurrentThread;
var currrentCulture = (CultureInfo)currentThread.CurrentCulture.Clone();
currrentCulture.NumberFormat.NumberDecimalSeparato r = "/";
currentThread.CurrentCulture = currrentCulture;

ولی از اونجایی که ظاهرا متوجه نیستین این کد چکار میکنه و چه مسائلی داره بهتره ازین کار صرفه نظر کنید و یا کاملا در مورد مساله Culture آشنایی پیدا کنید.
کلاس، متدها و Interface هایی هایی مثل CultureInfo, NumberFormatInfo, IFormatProvider, String.Format و نحوه کار با Culture‌در سیستم عامل رو باید خوب بدونید.

محمد قانعی
چهارشنبه 13 اسفند 1393, 19:40 عصر
با سلام .
من هنوز هم نمی تونم عدد صفر رو تو dataGridView نشون بدم! کسی نمیدونه باید چی کار کنم؟:متفکر:

محمد قانعی
جمعه 15 اسفند 1393, 10:12 صبح
با سلام خدمت اساتید محترم.
من برای نمایش دادن اعداد اعشاری توی dataGridView قسمت defaultcellstyle فرمت رو ##.#,# وارد کردم
اگه راه دیگه ای کسی میدونه که بهتر هست بگه!
چون من هنوزم نتونستم با این روش عدد صفر رو نشون بدم.میگم شاید تو این روش اصلا نمیشه صفر رو نشون داد.

محمد قانعی
جمعه 15 اسفند 1393, 22:38 عصر
با سلام.

129204
حالا کسی میدونه چرا صفر ها رو نشون نمیده؟

محمد قانعی
سه شنبه 19 اسفند 1393, 21:23 عصر
سلام.

عدد 123/12 رو همین جوری ولی عدد 123/00 رو به صورت 123 نمایش بده!
یعنی هیشکی نیست بتونه توی dataGridView اعداد اعشاری رو جوری که من میخوام نمایش بده؟
خیلی مهمه که نرم افزارتون بتونه اعداد اعشاری رو این جوری نمایش بده.پس از اساتید محترم تقاضا دارم توی این تایپیک شرکت کنند تا برای حل این مسئله راهی پیدا کنیم!

محمد قانعی
چهارشنبه 20 اسفند 1393, 09:55 صبح
با سلام خدمت اساتید گرامی.
بلاخره تونستم درستش کنم.ولی اگه راه بهتری داره که بهینه تر هستش بگین!


for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
decimal grade = Convert.ToDecimal(dataGridView1.Rows[i].Cells[0].Value);
if (grade == 0)
{
dataGridView1.Rows[i].Cells[0].Style.Format = "n0";
}
}