关于js中 toFixed()的一个小坑
作为一名前端,大家都应该知道,toFixed()的作用,toFixed()经常用于前台与后台数据格式的转换,套用下w3c上面的定义:
定义和用法
toFixed(n) 方法可把 Number 四舍五入为指定小数位数的数字。n为保留的小数位数
返回值
typeof (1.0.toFixed()) //string
返回值是string类型的
其实大部分的时候,我们在项目中运用,都是将多位的小数,转化成固定位数的小数,比如
1.000000.toFixed(2) //"1.00"
但是有的时候 我们需要将整数值转换成小数,如
1.toFixed(2) //你们知道这个结果是怎么样的吗
这个问题,是我在一次项目中遇到的,当时也没花太多时间,要想解决这个问题,就要深刻理解js引擎的编译原理和过程,已经相关类型值的理解。
其实是这样的,上面的整数化成小数,存在一个隐藏的坑,就是如果直接用整数直接调用toFixed(),比如1.toFixed(),那么讲会出现如下的报错:

原因就是,js引擎在运行的时候,默认将1后面的那个点,认为是小数点,所以1.toFixed()也就相当于 1.0toFixed(),当然报错啊。
其实想到的转化方法有很多:
1、1..toFixed() 这个方法最直接,不是少了一个点么 那就直接在后面添加一个点,这样就相当于1.0.toFixed()

2、可以将1存成一个变量名,用变量调用toFixed() 结果也是想要的

3、由上面的解决方法的引申,可以有另外一个方法,就是用一对()将1和后面的点隔离,那么js引擎在运行的时候,就会将点变成是1这个整体对于toFixed()方法的调用

条条大路通罗马,没有解决不了的问题,将所遇到的小知识点分享出来,与大家共勉。
关于js中 toFixed()的一个小坑的更多相关文章
- 微信小程序中scoll-view的一个小坑
在微信小程序开发中,有时候swiper-view会出现显示不全的问题,我们可以用scoll-view来把它包裹下,但是要用scoll-view就一定要设置height,而我们经常是在页面中加的这个组件 ...
- firefox 中碰到的一个小坑
情况描述: 在一个处于正常文档流的div中,里面有一部分文字,还有个有浮动的块, 上代码 HTML: <div class="container"> this is ...
- mysql url 连接配置的一个小坑。 工作中不会遇到。 学习的时候会
<property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> & ...
- go的变量redeclare的问题,golang的一个小坑
go的变量声明有几种方式: 1 通过关键字 var 进行声明 例如:var i int 然后进行赋值操作 i = 5 2 最简单的,通过符号 := 进行声明和赋值 例如: i:=5 golang会 ...
- python-django中使用事务以及小坑
django中使用事务 一.导入事务模块 from django.db import transaction 二.对相应的业务进行事务操作 方式一:为整个函数进行事务操作 @transaction.a ...
- [LeetCode]29 两数相除和一个小坑点
给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...
- 注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式
注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式 这个坑,必须要注意呀, 比如在用ListView的时候,如果在List_ ...
- 关于sniff函数的一个小坑
最近在用scapy模块写一个关于WiFi的脚本时用到sniff函数,其中遇到了一个小坑,记录如下: sniff函数是在指定网卡上每次嗅探到一个数据包后然后将它传给prn指定的函数.
- Github作为图床的一个小坑
Github作为图床的一个小坑 前言 听了少铭同学建议把github作为图床,结果遇到了一个小坑,总是显示不出来图片. 问题描述与解决 形如下的链接是显示不出来的: https://github.co ...
随机推荐
- 【转】 C/C++程序员必须熟练应用的开源项目
作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应 ...
- 剑指offer得意之作——顺时针打印矩阵
题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3 ...
- MySQL select语句直接导出数据
select * into outfile '文件存放路径' from 表名; (先记下来,还未测试)
- Redis 实践1- redis介绍和安装
redis是一个key-value存储系统,官方站点 http://redis.io 和memcached类似,但支持数据持久化 支持更多value类型,除了和string外,还支持hash.li ...
- Linux socket 类封装 (面向对象方法)
/* * socketfactory.h * * Created on: 2014-7-19 * Author: root */ #ifndef SOCKETFACTORY_H_ #define SO ...
- spark RDD,DataFrame,DataSet 介绍
弹性分布式数据集(Resilient Distributed Dataset,RDD) RDD是Spark一开始就提供的主要API,从根本上来说,一个RDD就是你的数据的一个不可变的分布式元素集合,在 ...
- SpringMvc出现Jsp页面不能正常解析成html网页
<!-- Spring mvc配置 --> <servlet> <servlet-name>springMvc</servlet-name> <s ...
- 2道acm编程题(2014):1.编写一个浏览器输入输出(hdu acm1088);2.encoding(hdu1020)
//1088(参考博客:http://blog.csdn.net/libin56842/article/details/8950688)//1.编写一个浏览器输入输出(hdu acm1088)://思 ...
- 硬件能力与智能AI-Zoomla!逐浪CMS2 x3.9.2正式发布
北京时间2017年9月10日,领先的CMS网站内容管理系统与生产力软件研发厂商-Zoomla!逐浪CMS团队发布其年度重要产品:Zoomla!逐浪CMS2 x3.9.2,引领国内门户.移动.微商以及生 ...
- 1.4 random模块
Python中的random模块用于生成随机数,下面介绍一下random模块中最常用的几个函数. 国际惯例,用模块之前先导入: >>> import random (一)random ...