PDA

View Full Version : سوال: سه رقم سه رقم جدا کردن اعداد منفی، اعشاری



samin_panahi
شنبه 23 آذر 1392, 21:50 عصر
سلام
چطور می شه اعداد منفی یا اعشاری رو سه رقم سه رقم جدا کنیم؟
هر چی سرچ کردم چیزی پیدا نشد!

ویرایش:
می خوام همین که دارم تایپ می کنم سه تا سه تا جدا کنه و این جدا کردنه هم برای اعداد مثبت کار کنه هم منفی، هم اعشاری هم غیر اعشاری
تو رویداد TextChanged از String.Format استفاده کردم ولی فقط واسه عددِ مثبتِ غیر اعشاری کار می کنه

saeed_yari
شنبه 23 آذر 1392, 22:36 عصر
سلام
یه راهش اینه که اول اونو تبدیل به رشته کنی و با استفاده از توابع رشته ای به راحتی روی اون کار کنی و بعد دوباره اونو به عدد تبدیل کنی
البته راههای دیگری هم هست ولی فکر میکنم این راحتترین راهش باشه

samin_panahi
شنبه 23 آذر 1392, 22:44 عصر
ورودیم که خودش رشته هست
عدد رو داخل تکست باکس وارد می کنم
می خوام همین که دارم تایپ می کنم سه تا سه تا جدا کنه و این جدا کردنه هم برای اعداد مثبت کار کنه هم منفی، هم اعشاری هم غیر اعشاری
واسه عددِ مثبتِ غیر اعشاری رو فقط بلدم!

sagggad
شنبه 23 آذر 1392, 23:03 عصر
دوست من فکر کنم این کد به دردت بخوره:

(private void textBox1_TextChanged(object sender, EventArgs e
{
()NumberFormatInfo nfi = new NumberFormatInfo
; nfi.NumberDecimalDigits = 0
;( textBox1.Text = Decimal.Parse(textBox1.Text, NumberStyles.AllowThousands).ToString("N", nfi
;( textBox1.Select(textBox1.Text.Length, 0
}

با توجه به مقدار و اندازه عددی که وارد میشه نوع متغییر تعریف شده را تغییر بده (هر چه عدد بزرگتر متغییر بزرگتر)!

علی متقی پور
شنبه 23 آذر 1392, 23:04 عصر
با سلام

اعداد منفی و غیر منفی فرقی ندارن از این نظر.
همونطوری که در بالا گفته شد از طریق متد Substring میتونید اعدادی که بصورت استرینگ هستن رو سه رقم سه رقم جدا کنید. راه دیگشم تقسیم بر 1000 کردنه که بنظرم راه اول بهتره

samin_panahi
شنبه 23 آذر 1392, 23:37 عصر
دوست من فکر کنم این کد به دردت بخوره:

NumberFormatInfo nfi =new NumberFormatInfo();
nfi.NumberDecimalDigits = 0;
textBox1.Text = Decimal.Parse(textBox1.Text, NumberStyles.AllowThousands).ToString("N", nfi);
textBox1.Select(textBox1.Text.Length, 0);

با توجه به مقدار و اندازه عددی که وارد میشه نوع متغییر تعریف شده را تغییر بده (هر چه عدد بزرگتر متغییر بزرگتر)!

با این کد عددِ مثبتِ غیر اعشاری رو سه تا سه تا جدا میکنه ولی به محض اینکه - یا . رو می زنم break می کنه

samin_panahi
شنبه 23 آذر 1392, 23:48 عصر
با سلام

اعداد منفی و غیر منفی فرقی ندارن از این نظر.
همونطوری که در بالا گفته شد از طریق متد Substring میتونید اعدادی که بصورت استرینگ هستن رو سه رقم سه رقم جدا کنید. راه دیگشم تقسیم بر 1000 کردنه که بنظرم راه اول بهتره

فکر می کنم این راه برای وقتی که می خوام همزمان با تایپ جدا کنه مناسب نباشه
من تو رویداد TextChanged از String.Format استفاده کردم که اون هم فقط اعداد مثبت و غیر اعشاری رو جدا می کنه
اگر اول - رو وارد کنم اصلا جدا نمی کنه
اعداد اعشاری رو هم تا قبل از اعشار جدا می کنه و اگر اول از همه اعشار باشه اصلا جدا نمی کنه !

samin_panahi
یک شنبه 24 آذر 1392, 10:05 صبح
کسی نمی دونه راهش چیه ؟ :(

rahnema1
یک شنبه 24 آذر 1392, 22:09 عصر
شما باید یه کنترل تکست باکس اختصاصی تعریف کنید توی این تاپیک یک نمونه پیدا می شهhttp://barnamenevis.org/showthread.php?427789