`

Js中parseFloat()方法所产生的精度问题

    博客分类:
  • js
阅读更多
项目中遇到金额的相加,结果出现了精度错误的问题,现在有个方法,不知道是不是最好的方法,但在我看来好象不会出什么错了。

Demo:

<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)方法修正后,得到正确结果。
分享到:
评论
1 楼 tianshi0253 2011-08-07  
我也遇到这个问题了。
还没找到解决方案呢...

相关推荐

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

    在Javascript中parseFloat()方法会产生精度问题 代码如下: [removed] var a = “0.11”; var b = “0.2801”; var c = “1.002”; var sum1 = parseFloat(a) + parseFloat(b) + parseFloat(c); var sum2 = ...

    javascript避免数字计算精度误差的方法详解.docx

    在JavaScript中进行浮点数运算时,经常会出现精度误差的问题。例如,一个简单的加法运算 `0.1 + 0.2` 的结果并不是预期中的 `0.3`,而是 `0.30000000000000004`。这种现象不仅让人困惑,而且在实际应用中可能会导致...

    javascript避免数字计算精度误差的方法详解

    标题所提到的知识点是关于在JavaScript编程语言中,如何处理和避免在进行数字计算时出现的精度误差问题。这个问题是数字在以浮点数形式存储时,因为计算机的存储架构是以二进制为基础的,导致一些十进制小数在二进制...

    JS精度计算1、转成整数计算再转换成小数,2、toFixed,3、math.js,4、bignumber.js,5、big.js

    类似于`bignumber.js`,`big.js`也是一个轻量级的库,专注于解决JavaScript的浮点数精度问题。它提供了一个Big类,用于创建和操作大数。与`bignumber.js`相比,`big.js`的API更简单,适合对性能要求较高或不需要...

    js中小数运算(加、减、乘、除)的问题及一些数学函

    JS 中小数运算(加、减、乘、除)的问题是指在JavaScript中对小数进行加、减、乘、除运算时可能遇到的精度问题。这种问题的产生是由于计算机对浮点数的存储方式和精度的限制。浮点数在计算机中是以二进制形式存储的...

    详解JavaScript中精度失准问题及解决方法

    在JavaScript中,精度失准问题主要源于其内部对...综上所述,理解JavaScript中的精度问题以及如何应对,对于编写涉及高精度计算的代码至关重要。正确地处理这些细节可以帮助我们编写出更加健壮和可靠的JavaScript程序。

    JS中乘法的浮点错误解决方法

    在JavaScript中,浮点数运算时常会出现精度问题,这主要是由于计算机内部表示浮点数的方式导致的。在JS中,11乘以22.9的结果并非预期的251.9,而是251.89999999999998,这种现象称为浮点误差。这是因为JavaScript...

    javascript中的float运算精度实例分析

    在JavaScript编程中,浮点数的运算精度是一个需要...理解并掌握JavaScript中浮点数的精度问题及应对方法,对于提高程序的可靠性和正确性至关重要。通过上述方法,开发者可以有效地处理和校正浮点运算中可能出现的误差。

    javascript计算器

    在JavaScript中,小数运算时常会遇到精度损失的问题,这是由于JavaScript使用了IEEE 754浮点数标准来存储和处理数字。这个标准在处理某些特定的小数运算时可能会导致结果不精确,尤其是在涉及大数和小数相除、循环...

    js计算小数的通用方法

    这种方法不仅可以用于解决小数运算中的精度问题,还可以广泛应用于财务系统、科学计算等领域中,特别是当对计算结果的精度有较高要求时。通过这种方式,开发者可以在JavaScript中更准确地处理涉及小数的数学运算,...

    Javascript获取界面数字做比较常见问题

    JavaScript的Number类型存在精度问题,对于超过15位的小数,可能会出现不精确。在比较时,可以考虑四舍五入或使用特定库(如`decimal.js`)处理高精度计算。 #### 3.3 正负零比较 JavaScript中存在正零和负零,它们...

    JS中数学函数的使用

    本文将详细介绍JS中的数学函数及其使用方法,并针对常见的小数运算问题提出解决方案。 #### 二、JS中小数运算问题及解决方案 在JavaScript中,由于浮点数的存储方式和计算机制,直接进行小数运算时可能会遇到精度...

    js 对小数加法精度处理示例说明

    代码如下: zf = accAdd(zf, parseFloat(“12.11”)); //加法函数,用来得到精确的加法结果 //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 //调用:...

    JavaScript浮点数及运算精度调整详解

    需要注意的是,虽然`toFixed()`方法可以解决精度问题,但返回的是字符串类型,如果后续运算中需要将这个结果转换为数字类型,使用`parseFloat()`函数可以实现转换。 总而言之,JavaScript中的浮点数精度问题是一个...

    Javascript 浮点运算精度问题分析与解决

    JavaScript中的浮点运算精度问题是由浮点数在计算机内部的二进制表示所导致的。通过理解和使用`toFixed()`方法和自定义的数值比较函数,可以在很大程度上解决这一问题,从而使得数值比较的结果可靠和准确。

    前端面试题之baseJS-floatpoint.zip

    理解这三个特殊值的含义以及它们如何在运算中产生,是必备的知识。 10. **JSON与浮点数**:在JSON序列化和反序列化过程中,所有的数字(包括浮点数)都会以字符串的形式表示。在处理JSON数据时,需要确保正确地转换...

    js数字转换为float,取N位小数

    浮点数在JavaScript中通常表示为double精度,尽管语言本身没有明确区分单精度和双精度。 当需要将字符串或其他非数字类型转换为数字时,JavaScript提供了几个内置函数。其中两个常用的是`parseInt()`和`parseFloat...

Global site tag (gtag.js) - Google Analytics