Skip to content

Commit ccad743

Browse files
committed
total per person updated
1 parent c5e6357 commit ccad743

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ <h2>Tip Calculator</h2>
3434
<div class="total">
3535
<p>Total</p>
3636
<p class="amount_total">BDT <span>0.00</span></p>
37+
<p>Per Person</p>
3738
</div>
3839
</div>
3940
</div>
@@ -44,6 +45,6 @@ <h2>Tip Calculator</h2>
4445
</ul>
4546
</div>
4647
</div>
47-
<script src="script.js" charset="utf-8"></script>
48+
<script src="script-solved.js" charset="utf-8"></script>
4849
</body>
4950
</html>

script-solved.js

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ const selectTipPerPerson = document.querySelector('.tip_per_person span');
77
const data = {
88
bill: 0,
99
tip: 0,
10-
person: 1,
11-
total: 0,
12-
tip_per_person: 0
10+
person: 1
1311
}
1412

1513
// ইনপুট ভ্যালিডেট করা, ইনপুট আসলেই নাম্বার কিনা
@@ -23,16 +21,29 @@ tipCalculator.addEventListener('change', (e) => {
2321
if(validateInput(e.target.value)) {
2422
// ইনপুট ঠিক থাকলে আমরা আমাদের এরর ক্লাসটা সরিয়ে নিবো ইনপুট থেকে
2523
e.target.classList.remove('err');
24+
2625
// এখন আমরা আমাদের টার্গেগেটেড ইলিমেন্টটার ভ্যালু অ্যাসাইন করবো(এজন্যেই ডাটা স্ট্রাকচারের কীগুলোর নাম ইনপুট ফিল্ডের নামের সাথে মিল রেখেছি), আর সেই ভ্যালো যাতে ফ্লোট নাম্বার হয় সেটাও খেয়াল রাখবো
2726
data[e.target.name] = parseFloat(e.target.value);
27+
28+
// টোটাল টিপ কতো আসে সেটা হিসেব করা
29+
const tip = (data.bill * data.tip) / 100;
30+
2831
// টোটাল হিসেব করবো
29-
data.total = data.bill + (data.bill * data.tip / 100);
32+
let total = data.bill + tip;
33+
// পার পার্সন হিসেব করা
34+
total = total / data.person;
35+
// টোটালটার দশমিককে ফিক্সড করে দেওয়া
36+
total = total.toFixed(2);
3037
// টোটালটা আমাদের ডকুমেন্ট এ শো করাবো
31-
selectTotal.textContent = data.total;
32-
// পার পারসন টিপ কতো করে আসে সেটা হিসেব করবো
33-
data.tip_per_person = parseFloat(data.tip / data.person);
34-
// পার পারসন এর টিপ টা ডকুমেন্ট এ দেখাবো
35-
selectTipPerPerson.textContent = data.tip_per_person;
38+
selectTotal.textContent = total;
39+
40+
// পার পার্শনের টিপ কতো আসে সেটা হিসেব করা
41+
let tip_per_person = tip / data.person;
42+
// দশমিককে ফিক্সড করে দেওয়
43+
tip_per_person = tip_per_person.toFixed(2);
44+
// ডকুমেন্ট এ শো করানো
45+
selectTipPerPerson.textContent = tip_per_person;
46+
3647
} else {
3748
// ইনপুট ভ্যালিড না হলে এরর ক্লাস লাগাবো ইউজারকে সুন্দর একটা ভুল হয়েছে ইফেক্ট দেওয়ার জন্যে
3849
e.target.classList.add('err');

0 commit comments

Comments
 (0)