Advertisement
cdsatrian

berbilang

Sep 3rd, 2012
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.42 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace HelperLib
  7. {
  8.     public class Financial
  9.     {
  10.         public string WordAmountId(double amount)
  11.         {
  12.             string word = "";
  13.             double divisor = 1000000000000.00; double large_amount = 0; double tiny_amount = 0;
  14.             double dividen = 0; double dummy = 0;
  15.             string weight1 = ""; string unit = ""; string follower = "";
  16.             string[] prefix = { "SE", "DUA ", "TIGA ", "EMPAT ", "LIMA ", "ENAM ", "TUJUH ", "DELAPAN ", "SEMBILAN " };
  17.             string[] sufix = { "SATU ", "DUA ", "TIGA ", "EMPAT ", "LIMA ", "ENAM ", "TUJUH ", "DELAPAN ", "SEMBILAN " };
  18.  
  19.             large_amount = Math.Abs(Math.Truncate(amount));
  20.             tiny_amount = Math.Round((Math.Abs(amount) - large_amount) * 100);
  21.  
  22.             if (large_amount > divisor)
  23.                 return "OUT OF RANGE";
  24.  
  25.             while (divisor >= 1)
  26.             {
  27.                 dividen = Math.Truncate(large_amount / divisor);
  28.                 large_amount = large_amount % divisor;
  29.  
  30.                 unit = "";
  31.                 if (dividen > 0)
  32.                 {
  33.                     if (divisor == 1000000000000.00)
  34.                         unit = "TRILYUN ";
  35.                     else
  36.                         if (divisor == 1000000000.00)
  37.                             unit = "MILYAR ";
  38.                         else
  39.                             if (divisor == 1000000.00)
  40.                                 unit = "JUTA ";
  41.                             else
  42.                                 if (divisor == 1000.00)
  43.                                     unit = "RIBU ";
  44.                 }
  45.  
  46.                 weight1 = "";
  47.                 dummy = dividen;
  48.                 if (dummy >= 100)
  49.                     weight1 = prefix[(int)Math.Truncate(dummy / 100) - 1] + "RATUS ";
  50.  
  51.                 dummy = dividen % 100;
  52.                 if (dummy < 10)
  53.                 {
  54.                     if (dummy == 1 && unit == "RIBU ")
  55.                         weight1 += "SE";
  56.                     else
  57.                         if (dummy > 0)
  58.                             weight1 += sufix[(int)dummy - 1];
  59.                 }
  60.                 else
  61.                     if (dummy >= 11 && dummy <= 19)
  62.                     {
  63.                         weight1 += prefix[(int)(dummy % 10) - 1] + "BELAS ";
  64.                     }
  65.                     else
  66.                     {
  67.                         weight1 += prefix[(int)Math.Truncate(dummy / 10) - 1] + "PULUH ";
  68.                         if (dummy % 10 > 0)
  69.                             weight1 += sufix[(int)(dummy % 10) - 1];
  70.                     }
  71.                 word += weight1 + unit;
  72.                 divisor /= 1000.00;
  73.             }
  74.  
  75.             if (Math.Truncate(amount) == 0)
  76.                 word = "NOL ";
  77.  
  78.             follower = "";
  79.             if (tiny_amount < 10)
  80.             {
  81.                 if (tiny_amount > 0)
  82.                     follower = "KOMA NOL " + sufix[(int)tiny_amount - 1];
  83.             }
  84.             else
  85.             {
  86.                 follower = "KOMA " + sufix[(int)Math.Truncate(tiny_amount / 10) - 1];
  87.                 if (tiny_amount % 10 > 0)
  88.                     follower += sufix[(int)(tiny_amount % 10) - 1];
  89.             }
  90.  
  91.             word += follower;
  92.             if (amount < 0)
  93.                 word = "MINUS " + word;
  94.  
  95.             return word.Trim();
  96.         }
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement