我爱撸码,撸码使我感到快乐!
大家好,我是Counter,当看到这个标题到时候是不是感觉很简单,千万不要大意哦,你说0.1 + 0.2 = 0.3 ?
有时候计算机并不是我们所说绝对精确,这个时候就要我们手动去干涉啦。先说说需求,当我们向你自定义的这个函数里传入参数,当然这个实参参数你是不能固定死的,因为你永远不知道用户会传入什么值进来,所以就要进行,兼容处理,例如当传入的不是数字的话,我们就希望,这个不是数字的实参不会影响到,其他是数字的实参,就比如sum(1, 2, “victory”, true, null) 我们就希望返回的和为 是数字的实参相加,即为3。
好了还是老样子,先看看效果:

 // 自定义求和函数
function sum() {
// 求出所传入实参的长度
var len = arguments.length;
// 定义一个变量为0
var num = 0;
// 遍历实参每一项
for(var i = 0; i < len; i++) {
// 让实参每一项都相加,如果值为NaN的话,那么就加0,parseInt可以使 例如"111"变为数字111
num += parseFloat(arguments[i]) || 0;
}
// 因为浮点数的加法不精确,0.1+0.2 = 3? 动手去试试就知道了,所以得到的结果,我们让它只取小数后两位,再乘以100 除以100,很有必要,如果此步剩略的话有会出现整数后面还带着小数后两位,还是字符串的形式,并且toFixed()方法返回的是字符串的形式
num = num.toFixed(2) * 100 / 100;
return num;
}

JavaScript自定义求和函数的更多相关文章

  1. javascript 自定义动画函数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  2. javascript自定义日期函数

    1.格式化日期(YYYY-MM-DD) 代码: var DateFormat = function (date) { if (!(date instanceof Date)) { date = dat ...

  3. asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

    通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 ...

  4. JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾

    页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...

  5. 使用 JavaScript自定义函数计算出教室的体积大小,其中教室的长、宽、高分别为 8 米、5 米、3 米

    查看本章节 查看作业目录 需求说明: 使用 JavaScript自定义函数计算出教室的体积大小,其中教室的长.宽.高分别为 8 米.5 米.3 米 实现思路: 创建 HTML 页面 在页面的 < ...

  6. JavaScript 高阶函数 + generator生成器

    map/reduce map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x ...

  7. Javascript学习之函数(function)

    在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针. 一 函 ...

  8. 原生javascript封装的函数

    1.javascript 加载的函数 window.onload = function(){} 2.封装的id函数 function $(id) { return document.getElemen ...

  9. Javascript事件模型系列(四)我所理解的javascript自定义事件

    被我拖延了将近一个月的javascript事件模型系列终于迎来了第四篇,也是我计划中的最后一篇,说来太惭愧了,本来计划一到两个星期写完的,谁知中间遇到了很多事情,公司的个人的,搞的自己心烦意乱浮躁了一 ...

随机推荐

  1. python将字符串类型改成日期类型

    将字符串类型的'2019-03-14'改成date类型,如下: import datetime b = datetime.date(*map(int,'2019-03-14'.split('-'))) ...

  2. 用js实现二维数组的旋转

    我最近因为做了几个小游戏,用到了二维数组,其中有需求将这个二维数组正翻转 90°,-90°,180°. 本人是笨人,写下了存起来. 定义的基本二位数组渲染出来是这种效果. 现在想实现的结果是下面的效果 ...

  3. duilib中字体font设置

    <Font name="微软雅黑" size="9" bold="false"/> <Label name="n ...

  4. elk之elasticsearch(二)

    一.下载安装包:注意版本统一 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip wge ...

  5. HTML02单词

    form:表单action:行动(提交的路径)method:方法(提交的方式)input:输入type:类型text:文本(文本输入项)password:密码radio:单选按钮checkbox:复选 ...

  6. 大数据量下的集合过滤—Bloom Filter

    算法背景 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定.链表.树.散列表(又叫哈希表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘 ...

  7. JDBC事务(二)转账示例

    示例采用三层框架 web层: package cn.sasa.web; import java.io.IOException; import javax.servlet.ServletExceptio ...

  8. Redis入门到高可用(十七)—— 持久化开发运维常见问题

    1.fork操作 2.子进程开销和优化 3.AOF阻塞

  9. javaweb(2)之Servlet入门

    Hello Servlet 方式一 1.新建 web 工程,编写一个类,实现 javax.servlet.Servlet 接口: package com.zze.servlet; import jav ...

  10. openshift 容器云从入门到崩溃之六《Source-to-Image》

    上次说到了怎么在oc上面部署应用而且说道了怎么定义模板部署应用,也许你会奇怪那个我代码打包编译在哪一步,那就要说道oc的s2i流程了 下面是基本s2i流程 1.制作base-image镜像 要使用s2 ...