`

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_”,显然是一个专门针对备忘录功能开发的微信小程序。下面将详细阐述与这个小程序相关的知识点。 首先,我们要理解微信小程序的基本架构和开发环境。微信小程序...

    Qml写的备忘录

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

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

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

    移动端备忘录

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

    jquery+bootstrap 实现简单备忘录

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

    微信小程序之简易备忘录

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

    ASP.NET 实现的备忘录

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

    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)架构,这是一种流行的软件设计模式,可以...

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

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

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

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

    备忘录.zip小程序精选源码

    【标题】"备忘录.zip小程序精选源码"所涉及的知识点主要集中在小程序开发和源码分析两个领域。小程序作为一种轻量级的应用形式,它在移动互联网时代深受开发者和用户的喜爱,因为它不需要下载安装,即扫即用,方便...

    小雪备忘录PHP开源系统(xNote) v1.0.zip

    1. **前端界面**:备忘录系统的用户界面通常使用HTML、CSS和JavaScript构建,提供友好的交互体验。JavaScript负责处理用户的实时交互,如添加、编辑备忘录,而PHP主要在后端处理数据和业务逻辑。 2. **后端逻辑**:...

    微信小程序开发-工具类-备忘录案例源码.zip

    4. **状态管理与数据持久化**:在JavaScript文件中,开发者会使用微信小程序提供的`Page`对象来管理页面状态,存储用户创建的备忘录。为了在关闭后还能恢复备忘录,可能还会使用微信小程序的本地存储API将数据保存到...

    纯HTML开发的桌面助手(闹钟、日历、备忘录等).

    标题中的“纯HTML开发的桌面助手(闹钟、日历、备忘录等)”意味着这个项目使用HTML作为主要的前端开发语言,构建了一个类似桌面应用的程序,它集成了常见的实用功能,如闹钟、日历和备忘录。在IT领域,这通常涉及到...

    jQuery带备忘录功能的日期选择器.zip

    "jQuery带备忘录功能的日期选择器.zip"就是一个实例,它结合了日期选择器与备忘录功能,为用户提供了一种便捷的方式来管理和查看特定日期的备注信息。 日期选择器是网页表单中常见的一种组件,用于让用户方便地选取...

Global site tag (gtag.js) - Google Analytics