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. CRM PrincipalObjectAccess(POA)

    PrincipalObjectAccess (POA) table is an important table which holds all grants share on CRM objects. ...

  2. C语言实现词频统计——第二版

    原需求 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 新需求: 1.小文件输入. 为表明程序能跑 2.支持命 ...

  3. poj 2109 Power of Cryptography

    点击打开链接 Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16388   Ac ...

  4. 326.Power of Three

    /* Given an integer, write a function to determine if it is a power of three. Follow up: Could you d ...

  5. SQL(Oracle)

    http://blog.csdn.net/winter13292/article/details/7011377 SQL 对大小写不敏感!  在 SQL 中增加 HAVING 子句原因是,WHERE ...

  6. Java将Unix时间戳转换成指定格式日期

    public String TimeStamp2Date(String timestampString, String formats){     Long timestamp = Long.pars ...

  7. testng参数化方法:Parameters和DataProvider

    Parameters注解在测试方法上指定参数列表,然后在测试方法中声明对应的形参,形参与参数列表一一对应,但名字可以不同,如下所示: public class Test1 { @Parameters( ...

  8. 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)

    Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...

  9. SDUT 3347 数据结构实验之数组三:快速转置

    数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 转置运算是一 ...

  10. 华为OJ平台——首次不重复字符

    题目描述: 输入一个字符串,输出字符串中第一个没有重复的字符,若没有满足条件的字符存在,则输出“.” 思路: 这题很简单,直接逐次比较就好了,但是没有考虑到更好效率的方法,以后想到的话再加上来 imp ...