Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. var DATA = [
  2. ['오백삼십조칠천팔백구십만천오백삼십구', '삼조사천이만삼천구'],
  3. ['육십사억삼천이만팔만칠천육백구', '사십삼'],
  4. ['구백육십조칠천억팔천이백삼십이만칠천일', '사십삼조오천이백억육천구백삼십만일'],
  5. ['이천구백육십사조삼천오백칠십이만삼천구백구십', '삼천사백오십조일억이천일만육백사십삼'],
  6. ['사십오억삼천육십만오백구십', '칠십억천이백삼십오만칠천구십이'],
  7. ['천백십일', '구천오백구십구'],
  8. ['오억사천', '백십일'],
  9. ['만오천사백삼십', '십구만삼천오백'],
  10. ['일조', '삼'],
  11. ['일억', '만'],
  12. ];
  13.  
  14. var nums=[[1,"일"],[2,"이"],[3,"삼"],[4,"사"],[5,"오"],[6,"육"],[7,"칠"],[8,"팔"],[9,"구"]];
  15. var unit=[[10,"십"],[100,"백"],[1000,"천"],
  16. [10000,"만"],[100000000,"억"],[1000000000000,"조"]];
  17.  
  18. function getNum(s1, s2, add_sum) {
  19.  
  20. console.log(`getNum() s1:${s1}, s2:${s2} add_sum:${add_sum}`);
  21.  
  22. for (var j=0; j<nums.length; j++) {
  23. if (s1==nums[j][1]) {
  24. return (nums[j][0] + add_sum) * getUnit(s2);
  25. }
  26. }
  27. return 0; //not find number
  28. }
  29. function getUnit(s) {
  30.  
  31. for (var i=0; i<unit.length; i++) {
  32. if (s == unit[i][1]) {
  33. return unit[i][0];
  34. }
  35. }
  36. return 1;
  37.  
  38. }
  39. function convStringToNumber(s) {
  40. var sum = 0;
  41. var add_sum = 0;
  42. //console.log(`s.length:${s.length}`);
  43.  
  44. for (var i=0; i<s.length; i++) {
  45.  
  46. tmp = getNum(s.substring(i, i+1), s.substring(i+1, i+2), add_sum);
  47. sum += tmp;
  48. add_sum = 0;
  49.  
  50. if (tmp == 0) {
  51. if("만억조".indexOf(s.substring(i+1, i+2)) == -1) {
  52. sum += getUnit(s.substring(i, i+1));
  53. }
  54. else {
  55. add_sum += getUnit(s.substring(i, i+1));
  56. }
  57.  
  58. } else i++;
  59.  
  60. console.log(`sum:${sum}, tmp:${tmp}`);
  61. }
  62.  
  63. return sum;
  64. }
  65.  
  66. console.log('만사천오백십');
  67. console.log(convStringToNumber('만사천오백십'));
  68.  
  69. console.log('만삼천오백');
  70. console.log(convStringToNumber('만삼천오백'));
  71.  
  72. console.log('십구만삼천오백');
  73. console.log(convStringToNumber('십구만삼천오백'));
  74.  
  75. //console.log(DATA[0][0]);
  76. //console.log(convStringToNumber(DATA[0][0]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement