PDA

View Full Version : سوال: تبدیل عدد فارسی به int



alireza323
سه شنبه 25 خرداد 1389, 14:24 عصر
سلام
من یه فایل اکسل دارم که اطلاعات رو از این فایل میخونم،تو یکی از ستون های این فایل اکسل مقدار موجود،یه عدد هستش که این عدد به صورت فارسی نوشته شده(منظورم اینه که به صورت مثلا123 نوشته شده نه به صورت 123)
حالا وقتی تو برنامه من از تابع convert.toInt16 استفاده میکنم و این ععد رو به عنوان پارامتر به این تابع میدم،برنامه خطا میده،حالا برای اینکه بتونم این مقدار رو به نوع int تبدیل کنم باید چی کنم
ممنون میشم کمکم کنید

alireza323
سه شنبه 25 خرداد 1389, 16:32 عصر
چه خطايي مي ده؟

خطایی که میده اینه: input string was not in a correct format
البته اینم بگم،چون اطلاعاتی که من از اکسل میخونم،به صورت string میاد،پارامتر تابع convert به صورت یه string هستش که مقدارش برابر عدد فارسیه

sds1920
پنج شنبه 27 خرداد 1389, 14:34 عصر
اين هم يك تابع براي تبديل اعداد فارسي به فرم معمول.
خروجي اين تابع string هست تا بتونيد به هر نوعي عددي كه دوست داريد تبديل كنيد.




private string ChengeNumber_FarsiToEnglish(string Number)
{
string Result = string.Empty;
for (int i = 0; i < Number.Length; i++)
{
int Code = (int)Number[i];
if (Code >= 48 && Code <= 57 || Code == 46)
Result += Number[i];
else
if (Code >= 1632 && Code <= 1641)
Result += (char)(Code - 1584);
else
if (Code == 46)
Result += '.';
else
{
Exception Ex = new Exception("فرمت عدد ورودي نادرست است");
throw Ex;
}
}
return Result;
}


البته اين تابع هم اعداد صحيح و هم اعداد مميز شناور رو شامل مي شه.