1.js如何将纯数字字符串转换为long型?

js 中 int的存储位数?最大十进制数表示是多少?

精度http://www.jb51.net/article/59808.htm

整数(不使用小数点或指数计数法)最多为 15 位。
小数的最大位数是 17,但是浮点运算并不总是 100% 准确

http://www.cnblogs.com/snandy/p/4943138.html

对于整数,前端出现问题的几率可能比较低,毕竟很少有业务需要需要用到超大整数,只要运算结果不超过 Math.pow(2, 53) 就不会丢失精度。

对于小数,前端出现问题的几率还是很多的,尤其在一些电商网站涉及到金额等数据。解决方式:把小数放到位整数(乘倍数),再缩小回原来倍数(除倍数)

大整数的精度丢失和浮点数本质上是一样的,尾数位最大是 52 位,因此 JS 中能精准表示的最大整数是 Math.pow(2, 53),十进制即 9007199254740992。

另外:http://www.jb51.net/article/35892.htm

//------------------------------解决办法 ---------------------------------------------//

http://xzllff.blog.51cto.com/3880098/831241

JavaScript小数在做四则运算时,精度会丢失,这会在项目中引起诸多不便,先请看下面脚本:

  1. <script type="text/javascript" language="javascript">
  2. alert(1/3);//弹出: 0.3333333333333333
  3. alert(0.09999999 + 0.00000001);//弹出: 0.09999999999999999
  4. alert(-0.09999999 - 0.00000001);//弹出: -0.09999999999999999
  5. alert(0.012345 * 0.000001);//弹出: 1.2344999999999999e-8
  6. alert(0.000001 / 0.0001);//弹出: 0.009999999999999998
  7. </script>

按正常计算的话,除第一行外(因为其本身就不能除尽),其他都应该要得到精确的结果,从弹出的结果我们却发现不是我们想要的正确结果。为了解决浮点
数运算不准确的问题,在运算前我们把参加运算的数先升级(10的X的次方)到整数,等运算完后再降级(0.1的X的次方)。现收集并整理贴于此,以备后
用。

  1. //加法
  2. Number.prototype.add = function(arg){
  3. var r1,r2,m;
  4. try{r1=this.toString().split(".")[1].length}catch(e){r1=0}
  5. try{r2=arg.toString().split(".")[1].length}catch(e){r2=0}
  6. m=Math.pow(10,Math.max(r1,r2))
  7. return (this*m+arg*m)/m
  8. }
  9. //减法
  10. Number.prototype.sub = function (arg){
  11. return this.add(-arg);
  12. }
  13. //乘法
  14. Number.prototype.mul = function (arg)
  15. {
  16. var m=0,s1=this.toString(),s2=arg.toString();
  17. try{m+=s1.split(".")[1].length}catch(e){}
  18. try{m+=s2.split(".")[1].length}catch(e){}
  19. return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
  20. }
  21. //除法
  22. Number.prototype.div = function (arg){
  23. var t1=0,t2=0,r1,r2;
  24. try{t1=this.toString().split(".")[1].length}catch(e){}
  25. try{t2=arg.toString().split(".")[1].length}catch(e){}
  26. with(Math){
  27. r1=Number(this.toString().replace(".",""))
  28. r2=Number(arg.toString().replace(".",""))
  29. return (r1/r2)*pow(10,t2-t1);
  30. }
  31. }
  1. <script type="text/javascript" language="javascript">
  2. alert(Number(0.09999999).add(0.00000001));//弹出: 0.1
  3. //注意,如果是负数,一定要先使用Number转型,否则结果不正确
  4. alert(Number(-0.09999999).sub(0.00000001));//弹出: -0.1
  5. alert(Number(0.012345).mul(0.000001));//弹出: 1.2345e-8
  6. alert(Number(0.000001).div(0.0001));//弹出: 0.01
  7. </script>

js如何将纯数字字符串转换为long型的更多相关文章

  1. 给定的逗号分隔的数字字符串转换为Table

    --将给定的逗号分隔的数字字符串转换为Table CREATE FUNCTION [dbo].[fu_Split](@strString nvarchar(4000)) RETURNS @Result ...

  2. 007——转载——C#将字符串转换为整型的三种方法的总结

    (一)转载——C#将字符串转换为整型的三种方法的总结 在C#中,要将一个字符串或浮点数转换为整数,基本上有三种方法: (1)使用强制类型转换:(int)浮点数 (2)使用Convert.ToInt32 ...

  3. Java带有运算符的字符串转换为Long型

    由于项目需要在配置文件中配置一个刷新时间,但是配置文件中取出来来的数据肯定是字符串,然后要将该带有运算符的字符串转换为Long型.具体代码如下: 配置文件system.properties中: ref ...

  4. 剑指offer-第七章面试案例1(字符串转换为整型)

    //将字符串转换为整型 //思路:特殊的输入测试: //1,考虑字符串是否为空.2.字符串问空的时候的返回0,和真实的返回0直键的区别.3,字符串中出现0~9的字符处理 //4.字符串中出现*,¥等一 ...

  5. 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型

    在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...

  6. 【转载】C#中使用int.Parse方法将字符串转换为整型Int类型

    在C#编程过程中,很多时候涉及到数据类型的转换,例如将字符串类型的变量转换为Int类型就是一个常见的类型转换操作,int.Parse方法是C#中专门用来将字符串转换为整型int的,int.Parse方 ...

  7. JS里访问纯数字ID对象时出现问题

    <p id="1">Hello</p> 例如上面的例子,id为纯数字会出错.此时用js去获取该对象会报错,查找不到该对象. 原因:必须是字母开头,或是下划线 ...

  8. double类型字符串转换成一个纯数字字符串和一个小数点位数的c++代码

    今天工作中遇到一个要不一个double型的字符串转换成一个纯字数字符串和一个标志这个数字字符串的小数点有几位的int类型 例如:“23.123”--->“23123” + 3   比较简单.就是 ...

  9. js中字符串转换为日期型

    简介:字符串转日期型函数 传入一个字符串格式的日期,如何转换为日期型的.以下为转换方案. //字符串转换为日期函数,返回日期型(传入的日期格式2014-04-22) function StringTo ...

随机推荐

  1. [ActionScript 3.0] AS3动态改变注册点

    package { import flash.display.DisplayObject; import flash.display.DisplayObjectContainer; import fl ...

  2. 1314: ZZY的困惑

    1314: ZZY的困惑 Time Limit: 2 Sec  Memory Limit: 128 M[Submit][Status][Web Board] Description ZZY有很多爱好~ ...

  3. android softinput 相关

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.Layo ...

  4. 国内外CDN服务商CNAME特征串调研

    总结 此篇博文给特定需求的人群使用,通过CNAME的某些特征串,确定其使用的是哪家CDN,大多是国外的CDN,国内的CDN厂商只有几个,格式为:[来源地址]+[截图]+[猜测的特征串],整体博文较长, ...

  5. Quick Sort(快排)

    这是挖坑填补法的演示 快排之挖坑填补法: void Quick(int top/*起始位置*/,int end/*末尾位置*/,int arr[])//挖坑填补法 { int i=top,j=end, ...

  6. dll 学习(一)

    DLL(Dynamic Link Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量.函数或类.在仓库的发展史上经历了"无库-静态链接库-动态链接库 ...

  7. plsql自定义快捷键

    说明:如 输入   sf按空格 就变成   SELECT * FROM 输入  w空格  就变成 WHERE 可以帮助你快速的写语句,配置如下图

  8. linux中强大且常用命令:find、grep

    在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们. 本文结构如下: find命令 find命令的一般形 ...

  9. 感受机房管理化繁为简-新款KVM使用心得

    感受机房管理化繁为简-新款KVM使用心得 一. 背景 随着网络应用的不断增多,各地机房服务器数量也随之增加,利用多传统主机切换器的方式已经无法满足目前这种区域广.设备多人员紧缺的现状,而且即使是使用了 ...

  10. php 几种函数类型

    <?php header("Content-type:text/html;charset=utf-8"); $a=; $b=; function demo(){ global ...