JS的精确简单的加减乘除
简单的写法:
<script>
function decNum(a){/*获取小数位数*/
var r=0;
a=a.toString();
if(a.indexOf(".")!== -1) r=a.split(".")[1].length;
return r;
}
function int(a){/*去除小数点并转成数值*/
return parseInt(a.toString().replace(".",""));
}
function calc(a,b,type){//加减乘除
var r,
da=decNum(a),
db=decNum(b),
dsum=da+db,
dmin=Math.min(da,db),
dmax=Math.max(da,db);
dsum+=dmax-dmin;
dsum=Math.pow(10,dsum);
dmax=Math.pow(10,dmax);
a=int(a);
b=int(b);
if(da>db){
b*=Math.pow(10,da-db);
}else{
a*=Math.pow(10,db-da);
}
switch(type){
case "add":
r=(a+b)/dmax;
break;
case "subtract":
r=(a-b)/dmax;
break;
case "multiply":
r=(a*b)/dsum;
break;
case "divide":
r=a/b;
break;
}
return r;
}
s=calc(0.1,0.2,"add");
console.log(s);
s=calc(-0.1,0.2,"add");
console.log(s);
s=calc(0.2,0.1,"subtract");
console.log(s);
s=calc(0.002,0.01,"multiply");
console.log(s);
s=calc(2.2,100,"divide");
console.log(s);
</script>
JS的精确简单的加减乘除的更多相关文章
- JS事件 编程练习-自制计算器 使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。
编程练习 使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElement ...
- JS实现一个简单的计算器
使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除.效果如上: 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择 ...
- vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结
vue—你必须知道的 目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...
- 用JS做一个简单的电商产品放大镜功能
使用js制作一个简单的产品放大图 购物网站的产品页经常会放有一个产品展示图区.该图区有一个功能就是产品图的放大功能,移动左侧的焦点区域,可以放大细节部分观看,详情如下图.实现该功能的方法也非常简单. ...
- [转]九个Console命令,让js调试更简单
转自:九个Console命令,让js调试更简单 一.显示信息的命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html> <html ...
- JS实现的简单横向伸展二级菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”
这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...
- 完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能
#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input(" ...
- JS代码的简单重构与优化
JS代码的简单重构与优化(适合新手) 原文 http://www.cnblogs.com/similar/p/5016424.html Demo . 1 //bad if (age > 20) ...
随机推荐
- python2.X与Python3.X区别
__future__模块 [回到目录] Python 3.x引入了一些与Python 2不兼容的关键字和特性,在Python 2中,可以通过内置的__future__模块导入这些新内容.如果你希望在P ...
- 安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境, 使用ubuntu 自带的Python环境
方法一: 退出base环境回到系统自带的环境 conda deactivate 方法二 1,通过将auto_activate_base参数设置为false实现: conda config --set ...
- MySQL单机安装
操作系统:CentOS 7 MySQL:5.6 MySQL的卸载 查看MySQL软件 卸载MySQL 查看是否还有 MySQL 软件,有的话继续删除. 安装MySQL 启动MySQL 设置root用户 ...
- Qt串口通信专题教程
查看以前的教程:Qt编写串口通信程序全程图文讲解 查看Wincom和Lincom介绍:Qt跨平台串口通信软件Wincom与Lincom 下载软件,文档和源码:资源下载 ——————————————20 ...
- ADB命令指令控制Android系统的WIFI连接开启/关闭状态
Android系统的usb调试已开启,连接电脑(有ADB环境) 1.在cmd中,进入shell指令模式 adb shell 2.进入ROOT指令模式 su 3. 打开WIFI指令 svc wifi e ...
- Android系统服务 —— WMS与AMS
“可以毫不夸张的说,Android的framework层主要是由WMS.AMS还有View所构成,这三个模块穿插交互在整个framework中,掌握了它们之间的关系和每一个逻辑步骤,你对framewo ...
- babel 实践
一.@babel/core var babel = require("@babel/core");babel.transform(code, options, function(e ...
- leetcode探索高级算法
C++版 数组和字符串 正文 链表: 正文 树与图: 树: leetcode236. 二叉树的最近公共祖先 递归(先序) leetcode124二叉树最大路径和 递归 图: leetcode 547朋 ...
- 005-文件权限解说、授权chmod和chown命令的用法
一.文件权限说明 1.1.linux 中 drwxr-xr-x权限含义 在 linux drwxr-xr-x意思如下: 第一位表示文件类型.d是目录文件,l是链接文件,-是普通文件,p是管道. 后面的 ...
- centos虚拟机存储扩容
在vSphere Web Client上面创建的虚拟机,用了一段时间后存储无法满足需求,需要将原来的存储300G扩容到500G 点此编辑即可修改磁盘2的储存大小,但是修改此配置后,虚拟机centos是 ...