Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. const numberToWordMap = {
  2. 0: "zero",
  3. 1: "one",
  4. 2: "two",
  5. 3: "three",
  6. 4: "four",
  7. 5: "five",
  8. 6: "six",
  9. 7: "seven",
  10. 8: "eight",
  11. 9: "nine",
  12. 10: "ten",
  13. 11: "eleven",
  14. 12: "twelve",
  15. 13: "thirteen",
  16. 14: "fourteen",
  17. 15: "fifteen",
  18. 16: "sixteen",
  19. 17: "seventeen",
  20. 18: "eighteen",
  21. 19: "nineteen",
  22. 20: "twenty",
  23. 30: "thirty",
  24. 40: "fourty",
  25. 50: "fifty",
  26. 60: "sixty",
  27. 70: "seventy",
  28. 80: "eighty",
  29. 90: "ninety"
  30. }
  31.  
  32. const test = (number) => {
  33. const result = checkWriter(number);
  34. console.log(`RESULT for: ${number}: `, result);
  35. }
  36.  
  37. const checkWriter = number => {
  38.  
  39. // ToDo: handle plurals
  40.  
  41. const parts = parseFloat(number).toFixed(2).split('.');
  42. const [integerPartString, decimalPartString] = parts;
  43. const integerPart = parseInt(integerPartString, 10);
  44. const decimalPart = parseInt(decimalPartString, 10);
  45.  
  46. let convertedDecimalPart = 'and zero cents';
  47. let convertedIntegerPart = '0 euros';
  48.  
  49. if (integerPart > 0 && decimalPart > 0) {
  50. convertedDecimalPart = `and ${convertNumberToWord(decimalPart)} cents`;
  51. } else if(integerPart === 0 && decimalPart > 0) {
  52. convertedDecimalPart = `${convertNumberToWord(decimalPart)} cents`;
  53. }
  54.  
  55. if (integerPart > 0) {
  56. convertedIntegerPart = `${convertNumberToWord(integerPart)} euros`
  57. }
  58.  
  59. return `${convertedIntegerPart} ${convertedDecimalPart}`;
  60.  
  61. }
  62.  
  63. const convertNumberToWord = number => {
  64. if (numberToWordMap[number] !== undefined) {
  65. return `${numberToWordMap[number]} `;
  66.  
  67. } else {
  68. const integers = Math.trunc(number % 10);
  69. const decimals = Math.trunc(number % 100 / 10);
  70. const hundreds = Math.trunc(number % 1000 / 100);
  71. const hundredThousands = Math.trunc(number % 1000000 / 1000);
  72. const hundredMillions = Math.trunc(number % 1000000000 / 1000000);
  73.  
  74. let result = '';
  75.  
  76. if (hundredMillions > 0) {
  77. result += convertNumberToWord(hundredMillions) + "million, ";
  78. }
  79. if (hundredThousands > 0) {
  80. result += convertNumberToWord(hundredThousands) + "thousand, ";
  81. }
  82. if (hundreds > 0) {
  83. result += convertNumberToWord(hundreds) + "hundred ";
  84. }
  85. if (decimals > 1) {
  86. result += convertNumberToWord(decimals * 10);
  87.  
  88. if (integers > 0) {
  89. result += convertNumberToWord(integers);
  90. }
  91.  
  92. } else if (decimals !== 0) {
  93. result += convertNumberToWord(decimals * 10 + integers);
  94. } else {
  95. result += convertNumberToWord(integers);
  96. }
  97.  
  98. return result;
  99. }
  100.  
  101. }
  102.  
  103. test(0);
  104. test(20001.1);
  105. test(112.10);
  106. test(874327.9);
  107. test(978);
  108. test(1.01);
  109. test(999999.9);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement