在當(dāng)今的支付方式中,大多數(shù)人都選擇使用銀行卡或通過移動(dòng)支付應(yīng)用完成交易,但在某些情況下,人們?nèi)匀恍枰褂矛F(xiàn)金完成交易。例如,在小商店購買少量商品時(shí),收銀員需要準(zhǔn)確計(jì)算商品價(jià)格并找出正確的找回?cái)?shù)目。在這種情況下,JavaScript可以為收銀員提供幫助,快速準(zhǔn)確地完成收銀工作。
如果你正在編寫一個(gè)收銀程序,你需要追蹤以下幾個(gè)方面的信息:
- 商品名稱
- 數(shù)量
- 單價(jià)
- 折扣(如果有的話)
在下面的示例中,我們將創(chuàng)建一個(gè)簡單的收銀應(yīng)用程序,用于計(jì)算購買項(xiàng)的總價(jià)格,并計(jì)算出應(yīng)找回的數(shù)字。
//通過以下模板創(chuàng)建商品對(duì)象: function Product(name, price) { this.name = name; this.price = price; } //創(chuàng)建我們要出售的商品 var apple = new Product('Apple', 0.58), orange = new Product('Orange', 0.72), banana = new Product('Banana', 0.45), pear = new Product('Pear', 0.94); //創(chuàng)建一個(gè)數(shù)組包含所有商品 var products = [apple, orange, banana, pear]; //通過以下模板創(chuàng)建購買項(xiàng)對(duì)象: function PurchaseItem(product, quantity) { this.product = product; this.quantity = quantity; } //購物籃 var basket = []; //添加購買項(xiàng)目 basket.push(new PurchaseItem(apple, 4)); basket.push(new PurchaseItem(orange, 2)); basket.push(new PurchaseItem(banana, 1)); //添加優(yōu)惠券 var discount = 0.1; //計(jì)算總價(jià)格 var subtotal = 0; for(var i=0; i<basket.length; i++) { subtotal += basket[i].quantity * basket[i].product.price; } //計(jì)算折扣 if(discount) { subtotal *= (1 - discount); } //四舍五入的函數(shù) function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); } //計(jì)算稅前總價(jià) var total = round(subtotal, 2); //添加消費(fèi)稅 var taxRate = 0.07; //稅 var tax = round(subtotal * taxRate, 2); //計(jì)算最終價(jià)格 var finalTotal = round(total + tax, 2); //收現(xiàn)金 var cashGiven = 20; //計(jì)算找回的數(shù)目 var change = round(cashGiven - finalTotal, 2); //顯示結(jié)果 document.write('Subtotal: $' + subtotal + '<br>'); document.write('Discount: ' + discount * 100 + '%<br>'); document.write('Total: $' + total + '<br>'); document.write('Tax: $' + tax + '<br>'); document.write('Final Total: $' + finalTotal + '<br>'); document.write('Cash Given: $' + cashGiven + '<br>'); document.write('Change: $' + change);
在上面的代碼中,我們創(chuàng)建了兩個(gè)對(duì)象:Product和PurchaseItem。Product對(duì)象表示一個(gè)商品,其中包含名稱和價(jià)格。PurchaseItem對(duì)象表示商品列表中一個(gè)購買項(xiàng),包括產(chǎn)品和數(shù)量。我們還將所有商品存儲(chǔ)在一個(gè)數(shù)組中,用于創(chuàng)建購物籃。在購物籃中,我們添加了購買項(xiàng),并使用discount變量添加了優(yōu)惠。我們還添加了一個(gè)稅,使用taxRate變量設(shè)置稅率。最后,我們計(jì)算總價(jià)格和找回?cái)?shù)字,并將所有結(jié)果輸出到用戶。
上面的示例是一個(gè)非常簡單的收銀應(yīng)用程序。在實(shí)際環(huán)境中,您可能需要添加更多的功能,例如捆綁銷售和訂購,以滿足復(fù)雜業(yè)務(wù)需求。但是,JavaScript是一個(gè)強(qiáng)大的語言,可以很容易地增強(qiáng)程序的功能性,以滿足您的業(yè)務(wù)需求。