آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کلاس تبدیل عدد به حروف (مشارکت کنید)

Pouya Asgharnejad Tehran  7 سال پیش  7 سال پیش
+1 0

من این سورس رو روی سایت قرار دادم تا متوجه خطا ها و مشکلات و ضعف های عملکردش بشم.

استفاده از این سورس برای همه دوستان حلال است، به شرط اینکه اگر مشکلاتی پیدا کردند حتما در قسمت نظرات مطرح کنند و اگر راه حل مشکلات رو بلدند به ما هم یاد بدهند.

هر چه سورس کاملتر شد، در همین جا بروزرسانی خواهد شد.

سورس اکنون اعداد تا 4 رقم را نمایش میدهد.


 

 <?
class Number {

const array1 = array('صفر','یک','دو','سه','چهار','پنج','شش','هفت','هشت','نه');
const array2 = array('ده','یازده','دوازده','سیزده','چهارده','پانزده','شانزده','هفده','هجده','نوزده');
const array3 = array('ده','بیست','سی','چهل','پنجاه','شصت','هفتاد','هشتاد','نود');
const array4 = array('صد','دویست','سیصد','چهارصد','پانصد','ششصد','هفتصد','هشتصد','نهصد');
const array5 = array('هزار','میلیون','میلیارد','تیلیارد','تریلیون');

public static function numberToWord($number){
$number = (int) $number;
$stringNumber = (string) $number;
$length = strlen($stringNumber);
switch ($length) {
case 1: return self::length1($number);
case 2: return self::length2($number, $stringNumber);
case 3: return self::length3($stringNumber);
case 4: return self::length4($stringNumber);
}
}

private static function length1($number){
return self::array1[$number];
}

private static function length2($number, $stringNumber){
$result = '';
if ($number < 20) {
$result = self::array2[$number - 10];
} else if ($number >= 20) {
$result .= self::array3[$stringNumber[0] - 1];
if ($stringNumber[1] > 0) {
$result .= ' و ' . self::length1((int) $stringNumber[1]);
}
}
return $result;
}

private static function length3($stringNumber){
$result = self::array4[$stringNumber[0] - 1];
$decimalString = ($stringNumber[1] != 0 ? $stringNumber[1] : '') . $stringNumber[2];
$decimalNumber = (int) $decimalString;
if($decimalNumber > 0){
if($decimalNumber < 10){
$result .= ' و ' . self::length1($decimalNumber);
} else if($decimalNumber >= 10){
$result .= ' و ' . self::length2($decimalNumber,$decimalString);
}
}
return $result;
}

private static function length4($stringNumber){
$result = ($stringNumber[0] > 1 ? self::array1[$stringNumber[0]] . ' ' : '') . self::array5[0];
$hundredsString = ($stringNumber[1] != 0 ? $stringNumber[1] : '') . $stringNumber[2] . $stringNumber[3];
$hundredsNumber = (int) $hundredsString;
if($hundredsNumber > 0){
if($hundredsNumber < 10){
$result .= ' و ' . self::length1($hundredsNumber);
} else if($hundredsNumber > 9 && $hundredsNumber < 100){
$result .= ' و ' . self::length2($hundredsNumber,$hundredsString);
} else if ($hundredsNumber > 99 && $hundredsNumber < 1000){
$result .= ' و ' . self::length3($hundredsString);
}
}
return $result;
}
}
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .