`
greatghoul
  • 浏览: 146900 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

JS实现小数末位进位方法

 
阅读更多

今天碰到个这个问题,需要将小数的最末位按照给如下规则进行进位:

 

进位规则
当末位在0-4时,末位进0.5。如 1.3 ==> 1.5
当末位在5-9时,末位进1.0。如 1.5 ==> 2.0
<script>
function fix(d) {
    if (parseInt(d) == d) return d;

    // 小数变整数.
    var len = 1;
    while (parseInt(d) != d) {
        d = d * 10;
        len *= 10;
    }
    
    // 取末位
    var last = Math.abs(len == 1 ? 0 : d % 10);
    var d1 = d - last;
    if (last >= 0 && last < 5) {
        d1 = d1 + 5;
    } else {
        d1 = d1 + 10;
    }
    
    d1 = d1 / len;  
    return d1;
}

var test = [-12.365, 198.8, 6, 1.2, 1.4, 1.5, 1.38, 1.70, 3.156];
for (var i = 0; i < test.length; i++) {
    document.write(test[i] + " ==&gt; " + fix(test[i]) + "<br/>");
}
</script>
  运行结果
-12.365 ==> -12.36
198.8 ==> 199
6 ==> 6
1.2 ==> 1.5
1.4 ==> 1.5
1.5 ==> 2
1.38 ==> 1.4
1.7 ==> 2
3.156 ==> 3.16

当然,js的精度有限,比如 3.1561 ==> 3.1561000000000012。

 

如果用Java实现的话,自然要考虑使用BigDecimal实现,不然的话,如果小数位数过长,不够存。

 

请教js保持精度的方法。

分享到:
评论

相关推荐

    一位小数的进位加法和退位减法PPT学习教案.pptx

    本PPT学习教案旨在帮助学生掌握一位小数的这两种基本运算方法,确保他们能够正确且高效地进行计算。 一位小数的进位加法指的是当两个一位小数相加,其个位上的数字相加超过10时,需要将多余的1进位到小数点前的一位...

    js实现四舍五入完全保留两位小数的方法

    本文实例讲述了js实现四舍五入完全保留两位小数的方法。分享给大家供大家参考,具体如下: //四舍五入保留2位小数(若第二位小数为0,则保留一位小数) function keepTwoDecimal(num) { var result = parseFloat...

    2020春四年级数学下册第七单元小数的加法和减法第一课时小数的进位加法教案西师大版

    2020春四年级数学下册第七单元小数的加法和减法第一课时小数的进位加法教案西师大版

    js计算小数的通用方法

    ### JavaScript 计算小数的通用方法 #### 背景与问题 在JavaScript中进行数学运算时,尤其是在处理小数运算时,由于JavaScript内部采用的是浮点数表示法(基于IEEE 754标准),这可能会导致计算结果出现精度误差。...

    小数进位加法PPT学习教案.pptx

    小数进位加法是小学数学...总的来说,这份PPT学习教案系统地介绍了小数进位加法的计算方法,通过实例、问题讨论和练习,帮助学生扎实地掌握这一技能,为他们在未来的生活和工作中处理涉及小数的计算问题打下坚实基础。

    FPGA小数分频实现

    接下来,我们讨论FPGA实现小数分频的几种常见方法: 1. **比例分频**:这是最简单的方法,通过增加一个可编程的计数器来实现。计数器在每个时钟周期增加,当达到分频系数的整数倍时复位。然而,这种方法只能实现...

    javascript 【小数转百分数 保留两位小数】

    项目中遇到小数相似度(业务给过来是小数)需要web界面以百分数的形式表示,并且保留两位小数。 直接上代码。 var nval = 0.12345; var percent = (Math.round(nval*10000))/100+'%'; 说明: 1.Math.round(num)函数...

    用链表实现小数计算~

    在计算机科学中,数据结构是组织...在实际编程中,这样的实现方法有助于提高代码的灵活性和可读性,同时也锻炼了对链表操作的深入理解。在Lab1文件中,可能包含了具体的代码实现和相关练习,供学习者进一步研究和实践。

    js保留小数位数

    在深入探讨具体的实现方法之前,我们先来了解一下JavaScript中浮点数的表示方式。JavaScript使用IEEE 754标准的64位浮点格式来表示数值,这种格式可以很好地处理大多数数值运算,但仍然存在一些精度损失的问题,尤其...

    基于FPGA的小数分频实现方法.pdf

    针对上述问题,本研究提出了一种基于现场可编程门阵列(FPGA)的小数分频实现方法。这种方法不仅能够有效解决传统分频器的局限性,还能高精度地实现对信号频率的微调,并且将频率转换时间缩短至2.56秒。具体来说,该...

    C语言实现小数转分数(包括带循环节小数)

    C语言实现小数转分数,包括带循环节的小数

    任意实现小数分频的verilog程序

    下面我们将详细讨论如何用Verilog实现任意小数分频器的设计方法和步骤。 首先,理解小数分频的基本原理。小数分频可以分为两个部分:整数分频和乘法器。整数部分直接通过除法操作实现,而小数部分通常通过累加器和...

    java实现小数、百分数值处理组件

    这个名为"java实现小数、百分数值处理组件"的工具包,显然是为了解决这些问题而设计的。下面我们将详细探讨相关的知识点。 首先,我们要理解小数处理的基本概念。在Java中,小数通常由`float`和`double`类型来表示...

    西门子1200实现小数按位截取

    "西门子1200实现小数按位截取"这个主题主要关注如何在PLC程序中对Real类型的数值进行特定小数位数的截取操作。在实际应用中,可能会遇到需要控制小数精度的情况,比如在财务计算或者精确控制过程中。此时,我们需要...

    四年级数学下册第八单元小数加法和减法8.1小数进位加法课时练冀教版

    在小学四年级数学的学习中,第八单元主要探讨的是小数的加法和减法,而8.1小数进位加法是这个单元的基础部分。小数加法是建立在整数加法基础上的,但增加了小数点对齐和处理不同位数小数的技巧。以下是关于小数进位...

    PLL频率综合器中整数和小数分频器设计与实现.zip_PLL divider_分频器_小数分频

    常见的实现方法有格雷码计数器、记忆元件和数字预失真等技术。 PLL中的小数分频器实现通常包含以下几个步骤: 1. 分频比的预处理:将小数分频比转换为整数和小数两部分。 2. 整数分频:这部分与整数分频器类似,用...

    js实现输入为0-10的数字,保留两位小数。

    该程序使用js 可校验输入框 为0-10 两位数字,并可保留两位小数

    js实现保留两位小数

    标题中的知识点为“js实现保留两位小数”,这一功能在JavaScript编程中经常会被用到。保留两位小数通常用于显示货币值、计算结果或是其他需要精确到小数点后两位的数值。在标题中提及的实现方式是通过编写一个函数来...

    三年级数学下册第五单元小数的初步认识5.5一位小数的加减法不进位不退位课时练西师大版

    这个阶段的学习重点在于理解小数的基本性质以及如何进行不进位、不退位的小数运算。下面我们将详细探讨这些知识点。 首先,计算小数加减法时,一个至关重要的原则是小数点对齐。这是因为小数点的位置决定了每个数字...

Global site tag (gtag.js) - Google Analytics