JS 将 string 转换成为 number
转自:blog.csdn.net/For_GG/article/details/78557966
汇总一下各类方法:
1):parseInt

var x = parseInt("10"); // 10

带有两个参数:第一个是目标转换字符串,第二个用来指定将字符串转化为几进制的数字,并且radix的范围是(2~36)

parseInt(string, radix)

2):利用js变量弱类型转换,最近很喜欢用这种方式代码简洁

var a = "1000";typeof(      +a   )    //numbertypeof(      a-0   )    //numbertypeof(      a*1   )    //number

3):parseFloat 方法可以将对应的字符串转化为浮点类型的数字。
num.toFixed(2)可以四舍五入,保留两位小数,但会转换为String类型

 var x = "2.446242342" var num =parseFloat(x); //typeof(num)  numbernum = num.toFixed(2); // 输出结果为 2.45     typeof(num) String

我们可以用取巧的方法达到保留两位小数的目的:

Math.floor(15.7784514000 * 100) / 100

4):Math.floor 的方式可以对字符和数字进行向下取整

Math.ceil(5/2)向上取整,有小数就整数部分加1var x = Math.floor("1000.01"); // 1000var x = Math.floor(1000.01); // 1000var x = Math.ceil(1000.01); // 1001var x = Math.floor(1000.91); // 1000

5):Math.round 的方式可以对字符和数字进行四舍五入取整

    var x = Math.round("1000"); //1000 equivalent to round("1000",0)var x = Math.round("1000.56"); // 1001var x = Math.round("1000.23"); // 1000

6):Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:

Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100

浮点数计算精度问题
0.1 => 0.0001 1001 1001 1001…(无限循环)
0.2 => 0.0011 0011 0011 0011…(无限循环)
其实对于浮点数的四则运算,几乎所有的编程语言都会有类似精度误差的问题,只不过在 C++/C#/Java 这些语言中已经封装好了方法来避免精度的问题,而 JavaScript 是一门弱类型的语言,从设计思想上就没有对浮点数有个严格的数据类型,所以精度误差的问题就显得格外突出。下面就分析下为什么会有这个精度误差,以及怎样修复这个误差。
下面是我的解决办法

//浮点数运算
//加法
function add(x,y){      var lenx = Math.floor(x) === x? 0:x.toString().split('.')[1].length,leny = Math.floor(y) === y? 0:y.toString().split('.')[1].length,num = Math.pow(10,Math.max(lenx,leny));return x*num+y*num/num
}//乘法
function mul(x,y){var lenx = Math.floor(x) === x? 0:x.toString().split('.')[1].length,leny = Math.floor(y) === y? 0:y.toString().split('.')[1].length,len = lenx+leny;return Number(x.toString.replace(',',''))  * Number(y.toString.replace(',','')) /len
}

JS 将 string 转换成为 number相关推荐

  1. JS中的数据类型转换:String转换成Number的3种方法

    今天有个学员问了个关于数据类型转换的问题,我觉得这个是可以给大家说一下的. JavaScript中,可以通过以下3种方法来将string值转换成number: 1.调用Number()来对string ...

  2. java string转number_string转换成number

    [百度分享]javascript中的数据类型 最近对javascript型有些感想,想分3个部分和大家分享一下,先说说数据类型的分析: 1. 数据类型 javascript中包含6种数据类型:unde ...

  3. 从一道面试题说起—js隐式转换踩坑合集

    前方提醒: 篇幅较长,点个赞或者收藏一下,可以在下一次阅读时方便查找 提到js的隐式转换,很多人第一反应都是:坑. 的确,对于不熟悉的人来说,js隐式转换存在着很多的让人无法预测的地方,相信很多人都深 ...

  4. js date转成 时间字符串_秋招快要开始了,前端笔试中的坑位-JS隐式转换问题

    我们在写笔试题的时候,经常碰到涉及隐式转换的题目,例如 "1" + 2 obj + 1 [] == ![] [null] == false === 和 == === 叫做严格运算符 ...

  5. JS中金额转换以及格式化Vue过滤器

    JS中金额转换以及格式化 - 为数字加上单位:万或亿 import Vue from 'vue' /** * 为数字加上单位:万或亿 * * 例如: * 1000.01 => 1000.01 * ...

  6. 使用JS将GPRMC转换成WGS84/GCJ02

    使用JS将GPRMC转换成WGS84/GCJ02 背景 Background 代码 Code GPRMC 转换成WGS84 WGS84转GCJ02 背景 Background 在物联网相关的 应用中, ...

  7. 掌握js类型转换,先来学习js原始值转换的抽象操作 toPrimitive

    文章目录 前言 js的原始值和引用值 js原始值转换的抽象操作 toPrimitive 日期对象的特殊情况 字符串连接符与算术隐式转换规则混淆 实例详解 `valueOf()` 和 `toString ...

  8. js中String的常用扩展

    js中String的常用扩展,包括trim,检查中文,url,emal,电话号码,转类型,格式化代码等 //去掉字符串空间调用方式 字符串.trim() String.prototype.trim = ...

  9. js中string字符串转换为JSON对象 - 方法大全(4种)

    js中string字符串转换为JSON对象 - 方法大全(4种) jQuery插件支持的转换方式: 示例: //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对 ...

最新文章

  1. webhook自定义服务器,GO 使用Webhook 实现github 自动化部署
  2. php用Simple Excel导出xls
  3. idea shell 中的函数 跳转_PHP如何为函数执行设置超时?
  4. 【mybatis mapper XML】List类型入参参数处理
  5. ASP.NET MVC视图和控制器之间的传值总结(一)
  6. C和指针之字符串编程练习1
  7. 微信红包功能(含示例demo)
  8. 网络KPI异常检测之时序分解算法
  9. mysql的事务隔离级别
  10. MySQL 锁(行锁、表锁、页锁、乐观锁、悲观锁等)
  11. python模拟登陆豆瓣_模拟登陆豆瓣并爬取个人主页(爬虫项目三)
  12. KY-RTI分布仿真技术:第一章 简介
  13. uvalive5713(次小生成树)
  14. 润乾报表 echarts统计图分类显示不全
  15. 2020产品经理升职攻略-直播分享课
  16. ios 图片简单360度旋转动画
  17. linux 怎么把新硬盘分区,linux添加新硬盘分区
  18. 洋哥线下见面会,小姐姐都问了什么?
  19. 随机生成汉字(随机点名册)
  20. JavaScript运算符完全攻略(史上最全!)

热门文章

  1. C# SolidWorks二次开发---工程图中心标记(Center Marks)
  2. 编写shell脚本-sftp上传文件
  3. 使用IntelliJ IDEA 集成阿里提供的 Alibaba Cloud Toolkit插件,实现自动化远程部署Java项目(jar包,war包两种方式)
  4. 通过查看端口状态查看mongodb是否已经启动
  5. Evernote宣布关闭电商平台,重心回迁软件开发
  6. 2021web安全最全学习路线,从入门到入职(含书籍、工具包)
  7. 上学与不上学的区别(奇文共赏)-转
  8. python获取文件修改时间 错误_python错误记录
  9. Zabbix 监控原理及架构(了解zabbix)
  10. 工作总结之linux防火墙配置命令适用centos7、centos8