`
qindongliang1922
  • 浏览: 2171501 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117084
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125431
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59506
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71021
社区版块
存档分类
最新评论

JavaScript一行代码保留任意位小数

阅读更多
今天做一个业务时,结果由于跟权重有关,Java默认显示保留的是15位小数,所以客户要求保留3位小数,其实这个需求很简单,前台,后台都可以完成这个任务,但是为了系统的性能考虑,这种工作,能用前台完成就用前台完成吧,尽量用客户端分担服务器的压力,尤其是在高并发的场景下,任何一个细节都有可能影响整体的性能,进而并发数量越大,这个细节就会有可能扩大成致命的问题。

好了,不说废话了,进入正题,这个保留小数位的做法,JS可以有很多种实现方法,网上一搜又是一大堆循环截取,又是下载第三方插件js完成,其实都可以,但是没必要那么麻烦,截取出来的小数位没有四舍五入的功能,所以也被放弃了,最后直接使用Math这个函数来完成就可以了
,使用方法,Math.round(小数*10)/10.0保留一位小数,Math.round(小数*100)/100.0保留二位小数,依次类推就可以实现保留任意位小数了,并具有四舍五入的功能,另外需要注意的是,如果最后一位小数为0,那么JS就会自动省略,当然,我们大部分业务都是保留1-3位小数。

散仙的JS核心代码如下:

Math.round(n.tf*1000)/1000.0

无保留小数的结果:


保留3位小数后的结果:




效果还不错!

  • 大小: 23.3 KB
  • 大小: 17.7 KB
1
4
分享到:
评论
4 楼 krystal_0424 2013-10-25  
<script type="text/javascript">
function roundUp(num,x){
  return (num+5*Math.pow(10,-(x+1))).toFixed(x);
};

alert(roundUp(10.235,2));
</script>
3 楼 krystal_0424 2013-10-25  
<script type="text/javascript">
function roundUp(num,x){
  return (num+5*Math.pow(10,-(x+1))).toFixed(x);
};

alert(roundUp(10.235,2));
</script>
[color=red][/color]
2 楼 qindongliang1922 2013-10-25  
蹲街吃豆腐 写道
js自带的toFixed()方法不就直接解决了问题?


这个方法是可以,但是容易出问题,你自己多测测就知道了,不推荐使用toFixed()方法。
1 楼 蹲街吃豆腐 2013-10-25  
js自带的toFixed()方法不就直接解决了问题?

相关推荐

    Javascript四舍五入(二)源码

    - `s.substring(0, s.indexOf(".") + 3)` 这行代码的关键在于使用`indexOf`函数找到小数点的位置,并在其基础上增加3个字符长度,从而获取包含整数部分和小数点后两位的字符串。 - 这种方法适用于只需要显示特定位数...

    javaScript-dom编程艺术

    每条语句通常独立一行,但也可通过分号隔开在同一行内。 2. 注释:注释用于解释代码,单行注释以`//`开头,多行注释以`/* ... */`包裹,HTML风格的注释`&lt;!-- --&gt;`在JavaScript中通常用于单行注释,但需注意每行都要...

    JavaScript笔记

    可以使用任何文本编辑工具编写 JavaScript 代码,然后由浏览器解释执行。 JavaScript常用于实现如下功能: |--控制文档的外观和内容; |--对浏览器的控制; |--与 HTML 表单的交互; |--与用户的交互; |--...

    javascript入门笔记

    特点 :将 a 和 b 转换为 二进制,按位比较,对应位置的数字,至少有一位为1的话,那么该为的整体结果就为1,否则为 0 ex : 5 | 3 101 011 ======== 111 结果为 :7 适用场合:任何小数与0 做 按位或的操作...

    JavaScript入门教程(2) JS基础知识

    JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它主要负责实现客户端的交互功能。在HTML中,JavaScript可以通过`&lt;script&gt;`标签插入到任意位置,使得动态内容得以执行。即使在`&lt;HTML&gt;`标签之前放置`...

    常用和格式判断正则表达式

    **描述**: 此表达式用于验证 QQ 号码格式,要求第一位不能为0,总长度至少5位。 - **应用场景**: 在填写社交账号信息时验证 QQ 号码格式是否正确。 **示例代码**: ```javascript let qq = "12345678"; let reg = /...

    javascript 正则 判断是否是数字的脚本

    - 特殊字符,也称为元字符,包括 `^`(行首)、`$`(行尾)、`.`(匹配任意字符,除了换行符)、`*`(重复零次或多次)、`+`(重复一次或多次)、`?`(重复零次或一次)、`{n}`(重复n次)、`{n,}`(重复n次以上)...

    nodejs+字符串的模式匹配+正则表达式+判断获取字符串的某些需求

    1. **字符串是一个浮点数**:浮点数通常包含整数部分和小数部分,可以通过 `[+-]?[0-9]*\.[0-9]+` 这样的正则表达式来表示。 2. **由26个英文字母组成的字符串**:可以通过 `[a-zA-Z]{26}` 来表示。 3. **由26个英文...

    正则表达式匹配.doc

    - 解析:`0`表示以0开头的数字,`[1-9][0-9]*`表示以1-9开头后面跟着任意数量的0-9之间的数字,即不允许以0开头的多于一位的数字。 6. **只能输入有两位小数的正实数**:“`^[0-9]+(.[0-9]{2})?$`” - 解析:`[0-...

    C#的正则表达式

    - **解释**:与上一条相似,但允许小数部分为1到3位。 8. **只能输入非零的正整数:"^\+?[1-9][0-9]*$"** - **解释**:该表达式匹配非零的正整数,`[1-9]`确保数字不以0开头,`[0-9]*`表示后面可以跟任意数量的...

    正则表达式语法大全(C_)

    正则表达式是一种用于匹配字符串中字符的强大工具,广泛应用于各种编程语言中,包括C、C++、Python、JavaScript等。通过正则表达式的使用,可以高效地完成对文本数据的搜索、替换和提取等操作。本文档将详细介绍一...

    JavaScript学习总结之正则的元字符和一些简单的应用

    $/`:匹配正数、负数、零或小数,其中正数或负数可以有也可以没有,整数部分一位数可以是0-9之间的任一个,多位数不能以0开头。 正则表达式是处理字符串模式匹配的强大工具,通过上述元字符和量词的学习,可以开始...

    js正则(非常完全,数字,中文,邮箱)

    此外,`.`匹配除换行符`\n`外的任意单个字符,`|`表示“或”关系,`()`用于分组,`[]`定义字符集,`[^]`定义否定字符集。 正则表达式还有贪婪与非贪婪模式的区别,`?`后跟限制符可以使匹配尽可能少或尽可能多。 总...

    正则基础之 小数点

    但是对于javascript来说有些特殊,由于各浏览器的解析引擎不同,“.”的匹配范围也有所不同,对于Trident内核的浏览器,如IE来说,“.”同样是匹配除了换行符“\n”以外的任意一个字符,但是对于其它内核的浏览器,...

    2021-2022计算机二级等级考试试题及答案No.14434.docx

    18. 数值型字段定义:对于数值型字段,若要求4位整数和2位小数,总宽度应为8位。 19. 字段属性:不是所有字段类型都允许设置默认值,例如自动编号字段通常不允许。 20. JSP页面作用域:在之间的注释只在当前JSP...

    C#正则表达式学习文档

    - **仅允许中文字符**:使用JavaScript实现的代码示例,可通过`onkeyup`事件实时限制输入框内的文本只能包含中文字符。 - **仅允许全角字符**:同上,但限制为全角字符。 - **仅允许数字**:限制输入框内的文本...

    常用正则表达式

    **解释**:此代码定义了一个JavaScript函数,用于获取字符串中双字节数量。通过将非ASCII字符替换为两个字母“a”,然后计算字符串长度来实现。 #### 21. 匹配换行符 **正则表达式**: `\n[\s|]*\r` **解释**:此...

    正则表达式 语法大全

    这匹配至少一位整数,后跟两位小数的正实数。 - **非零的正整数**:“`^\+?[1-9][0-9]*$`”。匹配任何非零的正整数。 - **非零的负整数**:“`^\-[1-9][]0-9]*$`”。此处的负号前后的符号需要修正,正确的应为:...

Global site tag (gtag.js) - Google Analytics