55
66// You should call this function a number of times to check it works for different inputs
77
8+ // ============================= code from Sprint-1 ===============================
89
910
10-
11-
12- const penceString = "399p" ;
11+ const penceString = "399" ;
1312
1413const penceStringWithoutTrailingP = penceString . substring (
1514 0 ,
@@ -28,5 +27,56 @@ const pence = paddedPenceNumberString
2827
2928console . log ( `£${ pounds } .${ pence } ` ) ;
3029
30+ // ================= Converted as reusable block of code ========================
31+
32+ function convertPenceToPounds ( priceAmount ) {
33+ const numberwithoutpence = priceAmount . substring ( 0 , priceAmount . length - 1 ) ;
34+ const paddedPenceNumberString = numberwithoutpence . padStart ( 3 , "0" ) ;
35+ const pounds = paddedPenceNumberString . substring (
36+ 0 ,
37+ paddedPenceNumberString . length - 2
38+ ) ;
39+ const pence = paddedPenceNumberString
40+ . substring ( paddedPenceNumberString . length - 2 )
41+ . padEnd ( 2 , "0" ) ;
42+
43+ return `£${ pounds } .${ pence } ` ;
44+ }
45+
46+ priceAmount = "999p"
47+
48+ console . log ( convertPenceToPounds ( priceAmount ) ) ;
49+
50+
51+ // ==================== function handling decimal inputs ========================
52+
53+ priceAmounts = "5.23p" ;
54+
55+ function convertPenceToPound ( priceAmounts ) {
56+ const cleanInput = priceAmounts . substring ( 0 , priceAmounts . length - 1 ) ;
57+
58+ if ( cleanInput . includes ( "." ) ) {
59+ const [ pounds , pence ] = cleanInput . split ( "." ) ; //destructuring;
60+ const formattedPence = pence . padEnd ( 2 , "0" ) ;
61+ return `£${ pounds } .${ formattedPence } ` ;
62+ } else {
63+ // Handle the integer case (e.g., "399p")
64+ const paddedPenceNumberString = cleanInput . padStart ( 3 , "0" ) ;
65+ const pounds = paddedPenceNumberString . substring (
66+ 0 ,
67+ paddedPenceNumberString . length - 2
68+ ) ;
69+ const pence = paddedPenceNumberString
70+ . substring ( paddedPenceNumberString . length - 2 )
71+ . padEnd ( 2 , "0" ) ;
3172
73+ return `£${ pounds } .${ pence } ` ;
74+ }
75+ }
3276
77+ console . log ( convertPenceToPound ( priceAmounts ) ) ; // "£5.23"
78+ console . log ( convertPenceToPound ( "399p" ) ) ; // "£3.99"
79+ console . log ( convertPenceToPound ( "3.99p" ) ) ; // "£3.99"
80+ console . log ( convertPenceToPound ( "50p" ) ) ; // "£0.50"
81+ console . log ( convertPenceToPound ( "5.5p" ) ) ; // "£5.50"
82+ console . log ( convertPenceToPound ( "0.3p" ) ) ; // "£0.30"
0 commit comments