首页 技术 正文
技术 2022年11月20日
0 收藏 801 点赞 2,760 浏览 2042 个字

用js实现收银功能。

 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>xx超市收银系统</title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript">
$(function () {
$('form').submit(function () {
var payable = Number($('#txtPayable').val());//应付
var payment = Number($('#txtPayment').val());//实付
if (payable === payment) {
$('#tdPocket').text(0);
} else if (payable > payment) {
$('#tdPocket').text('您还需再支付' + (payable*10 - payment*10)/10 + '元!');
} else {//需要找零
var yuan = [100, 50, 20, 10, 5, 1];
var jiao = [5, 2, 1];
var msg = '';
var payableYuan = parseInt(payable);
var paymentYuan = parseInt(payment);
var pocketYuan = paymentYuan - payableYuan;//找零元
var surplus = pocketYuan;
$(yuan).each(function() {
if (surplus >= this) {
var count = parseInt(surplus / this);
msg += this + '元' + count + '张';
surplus -= count * this;
}
});
//在js中10.2-10.1=0.09999999999999964,防止小数误差,需要*10
var pocketJiao = parseInt(((payment * 10) - (payable * 10)) - (pocketYuan * 10));//找零角
surplus = pocketJiao;
$(jiao).each(function () {
if (surplus >= this) {
var count = parseInt(surplus / this);
msg += this + '角' + count + '张';
surplus -= count * this;
}
});
msg += '共' + pocketYuan + '.' + pocketJiao + '元';
$('#tdPocket').text(msg);
}
return false;
});
});
</script>
<style type="text/css">
table {
border: 1px solid #0000cd;
} td {
padding: 2px;
} .right {
text-align: right;
} .left {
text-align: left;
width: 50px;
} .center {
text-align: center;
}
</style>
</head>
<body>
<form>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td class="right">应付:</td>
<td class="left"><input type="number" id="txtPayable" min="0" step="any" /></td>
</tr>
<tr>
<td class="right">实付:</td>
<td class="left"><input type="number" id="txtPayment" min="0" step="any" /></td>
</tr>
<tr>
<td class="right">找零:</td>
<td class="left" id="tdPocket"></td>
</tr>
<tr>
<td colspan="2" class="center"><input type="submit" value="计算" id="btnCalc" /></td>
</tr>
</table>
</form>
</body>
</html>

效果

锋利的js之妈妈再也不用担心我找错钱了

样式有点丑,没时间去调。

找零时,从最大面值的钱开始找,找零5.1,找一张5元,而不是找5张1元。

只考现行的第五套人民币面值,不考虑分币,目前几乎不怎么流通分币了。

重点是算出零钱该找出x张y面值的钱,由于js对于小数计算有误差,需要先将小数换算成整数,再转成小数.

js中10.2-10.1结果是0.09999999999999964;

要想得到结果0.1,笨一点的办法(10.2*10-10.1*10)/10=0.1;

有了这款神器,是不是再也不用担心找错钱了?我还是比较喜欢收银员给我多找点钱锋利的js之妈妈再也不用担心我找错钱了锋利的js之妈妈再也不用担心我找错钱了🙂

如果觉得对你有帮助,请点个赞,谢谢!

不足与错误之处,敬请批评指正!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,405
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898