PDA

View Full Version : فرمت عددی بهصورت سفارشی



omid195
دوشنبه 22 خرداد 1391, 21:37 عصر
با سلام

دوستان چگونه می توان یک عدد رو بصورت زیر فرمت دهی کرد

بطور مثال عدد 123456.250 بصورت

250/123,456
درواقع می خواهم بجای ممیز اعشار / قرار بگیرد و سه رقم سه رقم جدا شود
اینم بگم نمیشه به رشته تبدیلش کرد و این کارو کرد و اونو بلدم چون در یک فیلد عددی در یک گزارش است و حتما بوسیله فرمت باید عوض شود

arash ghafori
دوشنبه 22 خرداد 1391, 21:48 عصر
با سلام .
اگه میخوای یه استیل خاص به textbox خودت بدی میتونی از MaskTextBox استفاده کنی . بعد توی قسمت propertis اون گزینه ی mask رو بزنی و به شکل دلخواه بهش استیل خودت رو بدی.

اما اگه میخوای textbox قیمتت رو 3 تا 3 تا جدا کنی ، باید یه کلاس ایجدا کنید به این شکل :


public class separateTextBox : TextBox
{
public override string Text
{
get
{
return base.Text.Replace(",", "");
}
set
{
base.Text = value;
}
}

protected override void OnTextChanged(EventArgs e)
{
if (Text.Length > 3)
base.Text = separateText(Text);
base.Select(base.TextLength, 0);
}

private string separateText(string txt)
{
string t1 = txt.Substring(txt.Length - 3, 3);
string t2 = txt.Substring(0, txt.Length - 3);
if (t2.Length <= 3)
{
txt = t2 + "," + t1;
}
else
{
txt = separateText(t2) + "," + t1;
}
return txt;
}
}

و بعد یه دیباگ بگیریدو توی toolBox ازش استفاده کنید.
توی سایت هم بود اگه یه سرچ میزدی پیدا میشد.
موفق باشی.

omid195
دوشنبه 22 خرداد 1391, 22:28 عصر
باسلام مجدد
با تشکر از دوست عزیز arash ghafori
مشکل من این است که این فیلد در گزارش microsoft report است و به کلاس های داتنت دسترسی ندارم
و از انجایی که این فیلد در محاسباتی در گزارش استفاده می شود امکان پاس رشته به گزارش را ندارم و لی داخل فیلد ها امکان فرمت عددی فراهم است ولی من نمی دانم چه فرمتی برای آن بنویسم مثلا برای جدا کردن سه رقم سه رقم با ممیز اعشار این فرمت است
#,0.000;(#,0.000)
ولی من نمی دانم چگونه / را با . عوض کنم چون وقتی در همین فرمت هم . را با / عوض می کنم به ظاهر درست می شود ولی عدد برعکس می شود و دیگر سه رقم سه رقم جدا هم ندارد
مثلا بجای 12/56 می شود 56/12