javascript的parseFloat()方法精度问题探讨_javascript技巧

在Javascript中parseFloat()方法会产生精度问题

复制代码 代码如下:

<script language="javascript">
var a = "0.11";
var b = "0.2801";
var c = "1.002";
var sum1 = parseFloat(a) + parseFloat(b) + parseFloat(c);
var sum2 = (parseFloat(a) + parseFloat(b) + parseFloat(c)).toFixed(4)
document.write("a+b+c=" + sum1);
document.write("<br/>")
document.write("a+b+c=" + sum2)
</script>

a,b,c相加本来为1.3921,但sum1得出的结果为:1.3921000000000001,这不是想要的结果,特别在计算金钱的时候,不需要如此精确的精度。可以使用toFixed(n)方法修正后(n是小数后精确的位数)。

例如:parseFloat(1.392143).toFixed(2)=1.39。

时间: 2024-11-03 21:59:28

javascript的parseFloat()方法精度问题探讨_javascript技巧的相关文章

JavaScript中removeChild 方法开发示例代码_javascript技巧

1. 概述 删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置. 当你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新 // 拿到待删除节点: var self = document.getElementById('to-be-removed'); // 拿到父节点: var parent = self.parentElement; // 删除: var removed = parent.remove

javascript中sort() 方法使用详解_javascript技巧

语法:arrayObject.sort(sortby):参数sortby可选.规定排序顺序.必须是函数. sort() 方法用于对数组的元素进行排序. 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点, 首先应把数组的元素都转换成字符串(如有必要),以便进行比较. 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字. 比较函数应该具有两个参数 a 和 b,其返回

Javascript使用post方法提交数据实例_javascript技巧

本文实例讲述了Javascript使用post方法提交数据的方法.分享给大家供大家参考.具体如下: 使用JS提交数据时,可以调用本方法实现post方式的提交. var jsPost = function(action, values) { var id = Math.random(); document.write('<form id="post' + id + '" name="post'+ id +'" action="' + action +

在JavaScript中实现类的方式探讨_javascript技巧

在 javascript 中有很多方式来创建对象,所以创建对象的方式使用起来非常灵活.那么,到底哪一种方式是最恰当的对象创建方式呢?构造模式,原型模式还是对象原意模式(Object literal)呢? 但这些模式具体是怎么回事呢? 在开始讲解之前,让我们先清楚地介绍一下关于 javascript 基本知识. 有没有可能在 javascript 中实现面向对象编程的方式呢? 答案是可能的,javascript 是可以创建对象的!这种对象可以包含数据及能够操作数据的方法,甚至可以包含其他对象.它没

javascript:void(0)的问题使用探讨_javascript技巧

在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,可以设置其属性 href = "#",但是,这样会有一个问题,就是当页面有滚动条时,点击后会返回到页面顶端,用户体验不好. 目前有如下几种解决办法: 1)点击链接后不做任何事情 复制代码 代码如下: <a href="javascript:void(0);" >test</a> <a href="javascript:;" >test&

扩展javascript的Date方法实现代码(prototype)_javascript技巧

最近项目的部分功能正在重构,前端也基本上推翻了原来的设计,在之前半年的积累上有了新的方案.这几天在做前端的重构和设计,遇到了一些问题.因为这个模块最主要的还是对时间的控制,大量的操作js的Date对象,可是js原生的Date方法太少了,操作起来太不方便.于是打算扩展下Date的prototype. 长期从事C#的开发,被C#影响着我的思维.C#中DateTime的操作就很方便,于是就参考它对js的Date做了扩展. 复制代码 代码如下: //将指定的毫秒数加到此实例的值上 Date.protot

javascript重写alert方法的实例代码_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="

javascript object array方法使用详解_javascript技巧

Array.prototype.push push向数组尾部添加一项并更新length ,返回数组长度. 如果Object使用push会怎样? 看下面代码, obj好像数组一样工作了.length会自动更新. 复制代码 代码如下: var push = Array.prototype.push; var obj = {}; push.call(obj, "hello"); // 返回值 1 // obj {"0":"hello", length:

两种常用的javascript数组去重方法思路及代码_javascript技巧

第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用indexOf查找新数组中是否有该元素 3.若没有,则存到结果数组中 复制代码 代码如下: Array.prototype.unique1 = function(){ var res = []; for(var i = 0; i < this.length; i++){ if(res.indexOf(this[i]) == -1){ res.push(this[i]); } } retur