JS小数运算出现多为小数问题的解决方法

admin3年前IT技术970

 asfasf Number类型:

Number类型是ECMAScript中最常用和最令人关注的类型了;这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被成为双精度数值),为支持各种数据类型,ECMA-262定义了不同的数值面量格式。

十进制:
var intNum=10; //整数

八进制:
var octalNum1=070; //八进制的56
var octalNum2=079; //无效的八进制数值-解析为79

八进制字面量在严格模式下是无效的;

十六进制:
var hexNum1=0xA; //10
切记:在进行运算的时候,所有以八进制和十六进制表示的数值都最终被转换成十进制;
为什么操作小数会出现误差?
浮点数值的最高进度是17位小数,但在进行运算的时候其精确度却远远不如整数;整数在进行运算的时候都会转成10进制; 而Java和JavaScript中计算小数运算时,都会先将十进制的小数换算到对应的二进制,一部分小数并不能完整的换算为二进制,这里就出现了第一次的误差。待小数都换算为二进制后,再进行二进制间的运算,得到二进制结果。然后再将二进制结果换算为十进制,这里通常会出现第二次的误差。
所以(0.1+0.2)!=03

解决方式:

程序代码
除法函数,用来得到精确的除法结果
说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
调用:accDiv(arg1,arg2)

返回值:arg1除以arg2的精确结果

1
2
3
4
5
6
7
8
9
10
11
12
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{
t1=arg1.toString().split(".")[1].length}catch(e){

相关文章

magento1.9x系统加速

1.设置magento数据库模型 为单表查询:   在System > Configuration > Catalog > FrontEnd设置 ‘U...

汇成工商部门建站CMS系统V2.0

汇成工商部门建站CMS系统V2.0后台地址:您的地址/admin/login.asp帐号:admin密码:admin˂a target="_blank" href="download/gongshan...

excel打开csv 出现乱码怎么解决

1使用记事本打开CSV文件2点击菜单:文件-另存为,编码方式选择ANSI3保存完毕后,再用EXCEL打开这个文件就不会出现乱码的情况...

VB生成的ASP封装access数据库dll代码

 这篇文章以VB生成的DLL封装ASP代码来连接数据库(以Access数据库为例)。一般情况下我们在用ASP连接Access的数据库时通常都会进行如下的操作 '//Proconn....

1.解压缩

将下载到本地的安装介质解压缩。然后,将解压后的文件夹mysql-5.7.16-winx64拷贝到安装目录(E盘根目录)下。

2.设置系统环境变量

右键点击 计算机>>属性>> 高级系统属性>>环境变量>> 编辑 Path ,在最后添加” ;E:\mysql-5.7.16-winx64\bin“,确定。

3.创建my.ini 文件和data目录,配置安装路径与数据存储路径

在E:\mysql-5.7.16-winx64目录下创建data目录和my.ini,并在my.ini中配置安装路径与数据存储路径等信息。

点击(此处)折叠或打开

  1. [mysql]
  2. default-character-set=utf8
  3. [mysqld]
  4. max_connections=200
  5. default-storage-engine=INNODB
  6. basedir =E:\mysql-5.7.16-winx64\bin
  7. datadir =E:\mysql-5.7.16-winx64\data
  8. port = 3306

 

4.安装MySQL服务

首先,以管理员身份运行 cmd 并切换到MySQL的bin目录下;

接下来,执行mysqld --initialize-insecure

    这条命令用来初始化data文件,其中insecure选项指定登录无需口令。

点击(此处)折叠或打开

  1. D:\>e:
  2.  
  3. E:\>cd mysql-5.7.16-winx64
  4.  
  5. E:\mysql-5.7.16-winx64>cd bin
  6.  
  7. E:\mysql-5.7.16-winx64\bin>mysqld --initialize-insecure
  8.  
  9. E:\mysql-5.7.16-winx64\bin>

需要注意的是,如果不指定insecure选项,则会随机生成登陆密码, 在E:\mysql-5.7.16-winx64\data文件夹下,有一个 hoegh.err 文件,其中hoegh是主机名,打开会看到:
2016-10-20T09:34:56.806257Z 1 [Note] A temporary password is generated for root@localhost: p-mcI:ijR6Xg,
其中 p-mcI:ijR6Xg即为随机密码。

然后,输入 mysqld --install安装MySQL服务

我们会看到界面出现:Server successfully installed,这就说明MySQL服务安装成功。 

点击(此处)折叠或打开

  1. E:\mysql-5.7.16-winx64\bin>
  2.  
  3. E:\mysql-5.7.16-winx64\bin>mysqld --install
  4. Service successfully installed.
  5.  
  6. E:\mysql-5.7.16-winx64\bin>

5.启动MySQL服务

输入  net start mysql  回车, 就会看到: MySQL 服务已经启动成功。尝试使用root用户登录数据库,并通过show databases命令查看数据库概要信息。

点击(此处)折叠或打开

  1. E:\mysql-5.7.16-winx64\bin>
  2. E:\mysql-5.7.16-winx64\bin>net start mysql
  3. MySQL 服务正在启动 .
  4. MySQL 服务已经启动成功。
  5.  
  6.  
  7. E:\mysql-5.7.16-winx64\bin>mysql -u root
  8. Welcome to the MySQL monitor. Commands end with ; or \g.
  9. Your MySQL connection id is 2
  10. Server version: 5.7.16 MySQL Community Server (GPL)
  11.  
  12. Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
  13.  
  14. Oracle is a registered trademark of Oracle Corporation and/or its
  15. affiliates. Other names may be trademarks of their respective
  16. owners.
  17.  
  18. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  19.  
  20. mysql> show databases;
  21. +--------------------+
  22. | Database |
  23. +--------------------+
  24. | information_schema |
  25. | mysql |
  26. | performance_schema |
  27. | sys |
  28. +--------------------+
  29. 4 rows in set (0.00 sec)
  30.  
  31. mysql>

 

6.修改root密码

    安全起见,我们修改一下root密码。

点击(此处)折叠或打开

  1. mysql>
  2. mysql> alter user 'root'@'localhost' identified by 'root';
  3. Query OK, 0 rows affected (0.00 sec)
  4.  
  5. mysql>
  6. mysql> exit
  7. Bye
  8.  
  9. E:\mysql-5.7.16-winx64\bin>mysql -u root -proot
  10. mysql: [Warning] Using a password on the command line interface can be insecure.
  11. Welcome to the MySQL monitor. Commands end with ; or \g.
  12. Your MySQL connection id is 4
  13. Server version: 5.7.16 MySQL Community Server (GPL)
  14.  
  15. Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
  16.  
  17. Oracle is a registered trademark of Oracle Corporation and/or its
  18. affiliates. Other names may be trademarks of their respective
  19. owners.
  20.  
  21. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  22.  
  23. mysql> show databases;
  24. +--------------------+
  25. | Database |
  26. +--------------------+
  27. | information_schema |
  28. | mysql |
  29. | performance_schema |
  30. | sys |
  31. +--------------------+
  32. 4 rows in set (0.00 sec)
  33.  
  34. mysql>


MySQL数据库可以用任意ip连接访问的方法

 

过CMD命令行修改

MYSQL安装

  今天在Windows Server 2008 r2系统下部署了MySQL Community Server 5.7.16,安装过程中也遇到了一些问题,在这儿记录一下最终的安装过程。0.下...

MobaXterm监控服务器的资源

MobaXterm监控服务器的资源

使用服务器的时候比较喜欢随时查看的服务器资源使用情况,比如内存,CPU,网速,磁盘使用等情况,一次偶然的机会发现了如果你发现你的会话窗口底部没有,可以这样开启: Settings→SSH→勾选Remo...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。