-
关于JS中数字相加出现的问题。5
今天在无意中发现这个问题。
如:Number(4.2)+Number(9.2)
这两个值相加alert出来等于13.399999999999998,为什么?
如:Number(2.2)+Number(9.7)
alert出来等于11.899999999999998
但是 像这样的 Number(2.3)+Number(9.9)
alert出来等于12.2 。 这个值是我想要的。
为什么有的数值加起来会出现那么多的小数位呢,有的加起来又没有呢???2011年9月07日 15:44
7个答案 按时间排序 按投票排序
-
采纳的答案
<html> <head></head> <body> <script> var a=4.2; var b=9.2; alert(Number((a+b).toFixed(2))); </script> </body> </html>
为正确结果2011年9月07日 16:19
-
lz这是JavaScript浮点运算的一个bug,js自身的问题,不用想太多了。
比如:7*0.8 JavaScript算出来就是:5.6000000000000005 .
用Number()或者 toFixed自己处理一下,看你自己爱好了。2011年9月09日 13:25
-
<script type="text/javascript"> var a=Number(2.3)+Number(9.9) ; var b=Math.round(a*10)/10; alert(b); </script>
2011年9月07日 16:16
-
很奇怪。
alert(Number(4.2)+Number(9.0));
13.2
alert(Number(4.2)+Number(9.1));
13.3
alert(Number(4.2)+Number(9.2));
13.39999999998
alert(Number(4.2)+Number(9.3));
13.5
alert(Number(4.2)+Number(9.4));
13.6000000001
2011年9月07日 16:08
-
参考IEEE 754 的浮点数标准,
简要的原理:数在计算机是没法连续表示的,离散分布,毕竟浮点数是无穷的。
所以有可能13.2没有,就用13.199999近似表示(这只是比喻)2011年9月07日 16:06
相关推荐
通过上述知识点,我们了解到在JavaScript中为了实现两个数字相加而不是拼接,需要对字符串形式的输入进行适当的类型转换。这样,即使输入的是数字字符串,我们也可以确保进行数值运算而不是字符串运算,从而达到预期...
在Vue.js开发中,我们经常会遇到将字符串类型的数字转换为数值类型进行运算的情况。这个问题在提供的例子中有所体现,主要涉及到字符串与数值之间的转换以及条件判断。以下是对这个例子的详细解析: 首先,例子中有...
最后,文章中提到了一个有趣的JavaScript字符串连接和数字相加的实际应用例子: ```javascript document.write("<img src='images/" + i + 1 + ".jpg'>"); ``` 如果变量`i`的值是1,那么上述代码会输出`...
图像验证码适用于大多数情况,而数字相加的验证码可能更适合那些需要简洁交互或者针对计算能力验证的场景。无论选择哪种方式,重要的是要确保验证码既难于被机器人破解,又易于人类用户理解和使用。 总的来说,这两...
在`"js简单的算术相加代码.zip"`中,"jiaoben5831"可能是一个JavaScript文件,它可能包含了更复杂的逻辑,比如循环、条件判断或者其他功能,用于生成和解决一系列随机数学问题。而"说明.htm"可能是一个HTML文件,...
5. **使用固定精度的数字库**:有一些JavaScript库,如`decimal.js`或`bignumber.js`,它们提供了支持任意精度的数字类型,可以在计算过程中保持极高的精度。 6. **利用整数运算**:如果可能,将计算转换为整数运算...
JS 数字精度丢失的一些典型问题 JS 数字精度丢失的原因 解决方案(一个对象+一个函数) 一、JS数字精度丢失的一些典型问题 1. 两个简单的浮点数相加 0.1 + 0.2 != 0.3 // true 这真不是 Firebug 的问题,可以用...
在JavaScript中处理大数据相加的问题,主要是由于JavaScript的内置数据类型如Number不能准确地表示超出其最大值(2^53 - 1)的整数。因此,我们需要寻找一种方式来存储和操作这些超出常规数据类型范围的大数值。这个...
本篇文章将详细探讨JS实现的进制转换、浮点数相加以及数字判断操作,通过实例来解析这些功能的使用方法。 **进制转换** JavaScript提供了内置的`parseInt()`函数来实现进制转换。该函数接收两个参数:要转换的字符...
在使用JavaScript进行小数运算时,特别是加、减、乘、除四种基本运算,经常会遇到结果出现过多的小数位数问题。具体来说,当两个小数进行运算时,结果往往不是精确值,而是由于浮点数精度问题或者二进制转换所导致的...
JavaScript中的Number类型是基于IEEE 754标准的双精度浮点数(double precision),这种数据格式在内存中占用64位,其中包括1位用于表示正负号,11位用于存储指数,以及52位用于存储尾数(即小数部分)。由于这个...
以下是一些关于如何在JavaScript中实现这个功能的关键知识点: 1. **DOM操作**:首先,你需要获取到页面上的按钮和文本框元素。这可以通过`document.getElementById()`、`querySelector()`或`querySelectorAll()`等...
- 数字累加是将两个或更多数字相加的过程,基本语法是`result = number1 + number2 + ...`。 2. **动态累加**: - 动态累加意味着数字累加的过程是在运行时不断更新的,这通常涉及到事件监听、定时器或异步操作。...
在JavaScript中,大数相加是一项常见的编程任务,特别是在处理金融计算、加密算法或游戏逻辑等场景时。JavaScript原生的Number类型对于非常大的整数可能会出现精度问题,因此需要自定义方法来处理大数运算。本文将...
在JavaScript编程中,浮点数计算不精确是一个常见的问题,源于其内部的二进制浮点数表示方式。本文将深入探讨这个问题,并提供解决方案。首先,我们要理解为什么会出现这种不精确性。 JavaScript遵循IEEE 754标准来...
JavaScript的标准数据类型Number能够处理大部分整数和浮点数,但它的精度有限,最大安全数字是2^53 - 1(即9007199254740992),超过这个范围就可能出现精度丢失的问题。因此,当需要对超过这个范围的大整数进行精确...
js 字符串转换成数字的三种方法js字符串转换成数字与数字转换成字符串的实现方法js实现在字符串中提取数字JavaScript数字和字符串转换示例javaScript 判断字符串是否为数字的简单方法javascript中的数字与字符串相加...
js计算字符串长度,可以输入中文、英文、数字、中英文数字混合等,最后计算结果为字符串所占字节个数