`

JavaScript之保留小数点备忘录

    博客分类:
  • JS
阅读更多

 在项目开发过程中,因为对应的行业不同,对于财务小数和数量的准确度不同,对与保留的小数也有很高的要求,在这里我汇总了一下网上的一些实现方式,并通过真实的项目验证,在这里作为备份,以备以后查找方便。

      在实现中,javascript保留小数存在两种不同的方法,

      一种是在原来数的基础保留小数,不够小数,补零处理。例如:0.56,保留三位小数,会自动加零变成 0.560,这种实现在实际的项目中对于财务数据是非常重要的。

      另一种做法就是在原来数的基础上保留小数,对于不够小数,不进行处理。例如:0.56,保留三位小数,最后还是0.56。

在这两种实现中,需要根据实际的项目需要进行选择。下面我只列出针对上诉两种做法的一种实现。可能会有其它的实现方式,如果你有,可以分享出来。

 

第一种:补零处理方式

 

Js代码 
  1. function roundNumber(number,decimals) {    
  2.     var newString;// The new rounded number    
  3.     decimals = Number(decimals);    
  4.     if (decimals < 1) {    
  5.         newString = (Math.round(number)).toString();    
  6.     } else {    
  7.         var numString = number.toString();    
  8.         if (numString.lastIndexOf(".") == -1) {// If there is no decimal point    
  9.             numString += ".";// give it one at the end    
  10.         }    
  11.         var cutoff = numString.lastIndexOf(".") + decimals;// The point at which to truncate the number    
  12.         var d1 = Number(numString.substring(cutoff,cutoff+1));// The value of the last decimal place that we'll end up with    
  13.         var d2 = Number(numString.substring(cutoff+1,cutoff+2));// The next decimal, after the last one we want    
  14.         if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated    
  15.             if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point    
  16.                 while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {    
  17.                     if (d1 != ".") {    
  18.                         cutoff -= 1;    
  19.                         d1 = Number(numString.substring(cutoff,cutoff+1));    
  20.                     } else {    
  21.                         cutoff -= 1;    
  22.                     }    
  23.                 }    
  24.             }    
  25.             d1 += 1;    
  26.         }     
  27.         if (d1 == 10) {    
  28.             numString = numString.substring(0, numString.lastIndexOf("."));    
  29.             var roundedNum = Number(numString) + 1;    
  30.             newString = roundedNum.toString() + '.';    
  31.         } else {    
  32.             newString = numString.substring(0,cutoff) + d1.toString();    
  33.         }    
  34.     }    
  35.     if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string    
  36.         newString += ".";    
  37.     }    
  38.     var decs = (newString.substring(newString.lastIndexOf(".")+1)).length;    
  39.     for(var i=0;i<decimals-decs;i++) newString += "0";    
  40.     //var newNumber = Number(newString);// make it a number if you like    
  41.     return newString;  
  42. }    

 

 

 

第二种:不补零的处理

 

Js代码 
  1. function roundNumber(number,fractionDigits){    
  2.    with(Math){     
  3.        return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);      
  4.    }      
  5. }   

 

分享到:
评论

相关推荐

    备忘录_备忘录_微信小程序_wherevermpo_

    本项目名为“备忘录_备忘录_微信小程序_wherevermpo_”,显然是一个专门针对备忘录功能开发的微信小程序。下面将详细阐述与这个小程序相关的知识点。 首先,我们要理解微信小程序的基本架构和开发环境。微信小程序...

    微信小程序Demo:备忘录

    "微信小程序Demo:备忘录" 是一个基于微信小程序开发的示例项目,旨在帮助开发者理解如何利用微信小程序框架创建一个功能完备的备忘录应用。 该"todolist-master"压缩包很可能是这个备忘录小程序的源代码仓库,包含...

    Qml写的备忘录

    为了进一步理解并改进这个备忘录应用,你可以分析`xinnotebodok`文件的内容,查看Qml组件的布局、数据模型的定义以及JavaScript代码的实现。同时,检查相关的C++代码,了解数据处理和业务逻辑。对于出现的小Bug,...

    微信小程序项目实例——备忘录

    在本项目实例中,我们探讨的是一个基于微信小程序的备忘录应用。微信小程序是一种轻量级的应用开发平台,特别适合构建无需下载安装即可使用的移动应用。该项目旨在提供记录文字、计时以及设置提醒的基本功能,以满足...

    移动端备忘录

    移动端备忘录是一种轻量级的应用程序,通常用于个人或团队记录待办事项、想法、笔记等信息。在移动设备上,备忘录应用程序提供了一种便捷的方式,让用户随时随地记录重要信息,无论是在工作中还是在生活中。这篇内容...

    jquery+bootstrap 实现简单备忘录

    在本项目中,我们主要探讨如何使用jQuery和Bootstrap框架来创建一个简单的Web备忘录应用。这个应用利用HTML5的强大功能,为用户提供了一个方便、直观的界面,以便他们记录日常事务,并设定提醒时间,以便在特定时刻...

    微信小程序之简易备忘录

    本项目"微信小程序之简易备忘录"是一个专注于帮助用户记录日常生活、工作事项的工具,集文字记录、计时和提醒功能于一体,体现了微信小程序在实用性和便捷性上的优势。 首先,我们要了解微信小程序的开发环境。...

    asp日历&备忘录

    4. JSON(JavaScript Object Notation):可能作为数据交换格式,传输日历事件和备忘录信息。 总的来说,【ASP日历&备忘录】是一个功能齐全的时间管理和任务跟踪工具,它利用ASP技术实现了动态网页交互,结合数据库...

    ASP.NET 实现的备忘录

    "ASP.NET 实现的备忘录"项目,正如其名,是一个基于ASP.NET技术构建的在线备忘录系统,它可能包含了用户登录、创建、查看、编辑和删除备忘录的功能。这个项目对于学习ASP.NET和web应用开发的学生来说,是一个很好的...

    JavaScript小数点精确计算

    JavaScript中的小数点精确计算是开发者经常会遇到的一个挑战。由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将...

    jQuery日历表设置日期备忘录代码

    在本示例中,我们将探讨如何使用jQuery实现一个日历表功能,并添加日期备忘录代码。这个功能可以用于网页应用程序,帮助用户方便地查看和管理他们的日期提醒。 首先,我们需要引入jQuery库。这通常通过在HTML文件中...

    flutter备忘录

    《Flutter备忘录:构建跨平台小工具的实践与技术解析》 Flutter,谷歌推出的开源UI框架,以其高效、简洁的开发方式,逐渐在移动应用开发领域占据一席之地。本篇文章将深入探讨如何利用Flutter框架创建一个备忘录...

    手机备忘录源代码

    手机备忘录源代码是开发一个功能齐全、用户体验良好的手机应用程序的关键组成部分,它通常涉及到多个技术领域,包括前端用户界面、后端数据处理以及可能的网络通信。在这里,我们将深入探讨构建这样的应用所需的一些...

    微信小程序备忘录.zip

    在备忘录应用中,可能用到的API包括获取用户授权(如存储权限)、网络请求(同步或异步上传/下载数据)、本地存储(保存备忘录内容)等。 5. **事件处理**:微信小程序支持多种事件,如点击、滑动等。通过绑定事件...

    自定义日历备忘录控件

    开发者可以研究这些代码,了解如何将jQuery和JavaScript结合使用来创建自定义的日历备忘录控件,同时也可以学习如何组织和处理JSON数据。这个案例对于想要提升前端技能,特别是对日历组件开发感兴趣的开发者来说,是...

    集成闹钟及备忘录功能的js日历

    【集成闹钟及备忘录功能的js日历】是一个基于JavaScript实现的多功能日历组件,它将传统的日历视图与闹钟和备忘录功能相结合,为用户提供了一个便捷的时间管理和提醒工具。这个组件特别适合于网页应用,能够帮助用户...

    asp.net在线电话备忘录

    在电话备忘录系统中,可能用到了这些机制来保留用户输入的信息或用户的会话状态。 7. **MVC模式**:虽然标题没有明确指出,但ASP.Net也支持Model-View-Controller(MVC)架构,这是一种流行的软件设计模式,可以...

    jQuery简单带备忘录功能的日期选择器插件

    - `js` 文件夹:这是插件的核心代码所在,包含了JavaScript脚本,负责处理用户交互、备忘录功能以及与HTML元素的交互。主要的插件逻辑很可能在其中的一个或多个.js文件中。 **应用场景** 这个插件适用于任何需要...

    超强的日历控件,修改下可做备忘录,

    "超强的日历控件,修改下可做备忘录"这个标题揭示了该资源可能是一个强大且可定制的日历插件,经过简单的调整,就能转换为一个功能齐全的备忘录应用。 描述中提到“找了好久,终于找到了”,这表明这个日历控件可能...

    简单的备忘录模板,事项列表,创建计划事项小程序前端模板下载。

    本文将详细讲解“简单的备忘录模板,事项列表,创建计划事项小程序前端模板”的相关知识点,包括小程序的基本概念、前端开发技术以及源码软件的应用。 首先,我们要理解什么是小程序。小程序是微信、支付宝等平台...

Global site tag (gtag.js) - Google Analytics