toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

问题:部分特殊数值使用toFixed() 方法会出现转换不正确的情况,举个例子:

(3329.225).toFixed(2) = "3329.22";   //正常应该是“3329.23”

变化数值位数得到的小数也不稳定:

 

解决:使用Math.round(x)来进行数值转换

1. Math.round(x)中round() 方法可把一个数字舍入为最接近的整数。比如0.5 将舍入为 1,而 -0.5 将舍入为 0

2. 对需要保留小数的转换,公式为:Math.round( 3329.225 * Math.pow(10,2) )  /  Math.pow(10,2); ( 3329.225表示要处理的数值,2表示要保留的小数位数)

3. 回到上面的例子,使用Math.round( )转换后就获取正常的四舍五入的值了:

其中 Math.pow(10,2) = 100;

Js中toFixed()方法保留小数不精准的问题的更多相关文章

  1. JS中toFixed()方法的问题及解决方案

    最近发现JS当中toFixed()方法存在一些问题,采用原生的Number对象的原型对象上的toFixed()方法时,规则并不是所谓的“四舍五入”或者是“四舍六入五成双”,所谓“四舍六入五成双”,在百 ...

  2. js中toFixed()函数出现小数点后的多位数的原因

    不演示示例了. 强调一点就是:toFixed()返回的str类型,所以如果想写成百分之多少的情况下,建议直接在分子上乘100后,在除以总和,再使用toFixed()函数保留几位小数.不然会出现如下:7 ...

  3. java中double变量保留小数问题

    (转载自玄影池扁舟) 做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点 ...

  4. 【转载】JS中bind方法与函数柯里化

    原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...

  5. 原生JS中apply()方法的一个值得注意的用法

    今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { &q ...

  6. js中apply方法的使用

    js中apply方法的使用   1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是: Object.extend = function(destinat ...

  7. paip.编程语言方法重载实现的原理及python,php,js中实现方法重载

    paip.编程语言方法重载实现的原理及python,php,js中实现方法重载 有些语言,在方法的重载上,形式上不支持函数重载,但可以通过模拟实现.. 主要原理:根据参数个数进行重载,或者使用默认值 ...

  8. js中settimeout方法加参数

    js中settimeout方法加参数的使用. 简单使用看w3school  里面没有参数调用,  例子: <script type="text/javascript"> ...

  9. js中split()方法得到的数组长度

    js 中split(",")方法通过 ”,“ 分割字符串, 如果字符串中没有 “,” , 返回的是字符串本身 var str = “abc”://分隔符个数为0 var newSt ...

随机推荐

  1. Leetcode题目31.下一个排列(中等)

    题目描述: 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须原地修改,只允许使用额外 ...

  2. grep命令和tail命令

    写在前面的话: 最近参与了新项目开发,周期短,与自己负责的主要业务对接.业务复杂,时常出现bug,然额对于菜鸟的我,更是无从下手.其实最好的帮助就是 学会查看日志,关键是之前查看日志真是太少了,菜鸟一 ...

  3. itertools模块中的product方法

    itertools模块中的product方法 itertools.product(*iterables[, repeat]) 笛卡尔积 创建一个迭代器,生成表示item1,item2等中的项目的笛卡尔 ...

  4. PHP获取文件扩展名五种以上的方法和注释

    在PHP面试中或者考试中会有很大几率碰到写出五种获取文件扩展名的方法,下面是我自己总结的一些方法 $file = ‘需要进行获取扩展名的文件.php’; //第一种,根据.拆分,获取最后一个元素的值f ...

  5. ubuntu 18.04 64bit下如何源码编译安装anbox

    1. 准备工作 1.1 安装gcc 7.x版本 sudo apt-get install gcc-7 -y 1.2 安装依赖的库及其工具 sudo apt install build-essentia ...

  6. 大数相乘 java

    <pre name="code" class="java">package bigMultiply; import java.math.BigInt ...

  7. LC 163. Missing Ranges 【lock, hard】

    Given a sorted integer array nums, where the range of elements are in the inclusive range [lower, up ...

  8. How to run a VBA macro when new mail is received in Outlook

    It can be very useful to run a VBA macro when new mail is received in Outlook. A customer asked me t ...

  9. lucene 快速入门

    日常开发中,相信大家经常会用like去匹配一些数据,同时我们也知道,like往往会导致全表扫描,当数据量越来越大的时候,我们会纠结于 数据库的龟速查找,此时我们必须另寻蹊跷,这时lucene就可以大显 ...

  10. Ubuntu16.04使用apt安装完nginx常见问题

    1.安装完并remove掉后重新install后没nginx.conf文件 解决办法: apt-get -y --purge remove nginx* apt-get -y autoremove a ...