在项目开发过程中,因为对应的行业不同,对于财务小数和数量的准确度不同,对与保留的小数也有很高的要求,在这里我汇总了一下网上的一些实现方式,并通过真实的项目验证,在这里作为备份,以备以后查找方便。
在实现中,javascript保留小数存在两种不同的方法,
一种是在原来数的基础保留小数,不够小数,补零处理。例如:0.56,保留三位小数,会自动加零变成 0.560,这种实现在实际的项目中对于财务数据是非常重要的。
另一种做法就是在原来数的基础上保留小数,对于不够小数,不进行处理。例如:0.56,保留三位小数,最后还是0.56。
在这两种实现中,需要根据实际的项目需要进行选择。下面我只列出针对上诉两种做法的一种实现。可能会有其它的实现方式,如果你有,可以分享出来。
第一种:补零处理方式
-
function roundNumber(number,decimals) {
-
var newString;// The new rounded number
-
decimals = Number(decimals);
-
if (decimals < 1) {
-
newString = (Math.round(number)).toString();
-
} else {
-
var numString = number.toString();
-
if (numString.lastIndexOf(".") == -1) {// If there is no decimal point
-
numString += ".";// give it one at the end
-
}
-
var cutoff = numString.lastIndexOf(".") + decimals;// The point at which to truncate the number
-
var d1 = Number(numString.substring(cutoff,cutoff+1));// The value of the last decimal place that we'll end up with
-
var d2 = Number(numString.substring(cutoff+1,cutoff+2));// The next decimal, after the last one we want
-
if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated
-
if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point
-
while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {
-
if (d1 != ".") {
-
cutoff -= 1;
-
d1 = Number(numString.substring(cutoff,cutoff+1));
-
} else {
-
cutoff -= 1;
-
}
-
}
-
}
-
d1 += 1;
-
}
-
if (d1 == 10) {
-
numString = numString.substring(0, numString.lastIndexOf("."));
-
var roundedNum = Number(numString) + 1;
-
newString = roundedNum.toString() + '.';
-
} else {
-
newString = numString.substring(0,cutoff) + d1.toString();
-
}
-
}
-
if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string
-
newString += ".";
-
}
-
var decs = (newString.substring(newString.lastIndexOf(".")+1)).length;
-
for(var i=0;i<decimals-decs;i++) newString += "0";
-
//var newNumber = Number(newString);// make it a number if you like
-
return newString;
- }
第二种:不补零的处理
-
function roundNumber(number,fractionDigits){
-
with(Math){
-
return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);
-
}
- }
分享到:
相关推荐
7. **事件处理**:如果这个备忘录应用有添加、删除或修改功能,那么可能使用JavaScript进行交互处理。例如,监听`click`事件在按钮被点击时执行特定功能,使用`addEventListener`来添加事件监听器。 8. **存储和...
在本项目实例中,我们探讨的是一个基于微信小程序的备忘录应用。微信小程序是一种轻量级的应用开发平台,特别适合构建无需下载安装即可使用的移动应用。该项目旨在提供记录文字、计时以及设置提醒的基本功能,以满足...
移动端备忘录是一种轻量级的应用程序,通常用于个人或团队记录待办事项、想法、笔记等信息。在移动设备上,备忘录应用程序提供了一种便捷的方式,让用户随时随地记录重要信息,无论是在工作中还是在生活中。这篇内容...
在本项目中,我们主要探讨如何使用jQuery和Bootstrap框架来创建一个简单的Web备忘录应用。这个应用利用HTML5的强大功能,为用户提供了一个方便、直观的界面,以便他们记录日常事务,并设定提醒时间,以便在特定时刻...
本项目"微信小程序之简易备忘录"是一个专注于帮助用户记录日常生活、工作事项的工具,集文字记录、计时和提醒功能于一体,体现了微信小程序在实用性和便捷性上的优势。 首先,我们要了解微信小程序的开发环境。...
本文实例讲述了javascript设计模式 – 备忘录模式原理与用法。分享给大家供大家参考,具体如下: 介绍:在我们的开发中偶尔会遇到这样一种情况,需要对用户的行为进行撤销。要想实现撤销,首先需要保存软件系统的...
标题中的“记事本备忘录”指的是一个软件或应用程序,它结合了传统的文本编辑器(记事本)和备忘录管理功能。在IT领域,这样的应用通常用于记录简单的文字信息,设置提醒,或者作为轻量级的任务管理工具。 在描述中...
"ASP.NET 实现的备忘录"项目,正如其名,是一个基于ASP.NET技术构建的在线备忘录系统,它可能包含了用户登录、创建、查看、编辑和删除备忘录的功能。这个项目对于学习ASP.NET和web应用开发的学生来说,是一个很好的...
JavaScript中的小数点精确计算是开发者经常会遇到的一个挑战。由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将...
1. **前端界面**:备忘录系统的用户界面通常使用HTML、CSS和JavaScript构建,提供友好的交互体验。JavaScript负责处理用户的实时交互,如添加、编辑备忘录,而PHP主要在后端处理数据和业务逻辑。 2. **后端逻辑**:...
在本示例中,我们将探讨如何使用jQuery实现一个日历表功能,并添加日期备忘录代码。这个功能可以用于网页应用程序,帮助用户方便地查看和管理他们的日期提醒。 首先,我们需要引入jQuery库。这通常通过在HTML文件中...
《Flutter备忘录:构建跨平台小工具的实践与技术解析》 Flutter,谷歌推出的开源UI框架,以其高效、简洁的开发方式,逐渐在移动应用开发领域占据一席之地。本篇文章将深入探讨如何利用Flutter框架创建一个备忘录...
手机备忘录源代码是开发一个功能齐全、用户体验良好的手机应用程序的关键组成部分,它通常涉及到多个技术领域,包括前端用户界面、后端数据处理以及可能的网络通信。在这里,我们将深入探讨构建这样的应用所需的一些...
在备忘录应用中,可能用到的API包括获取用户授权(如存储权限)、网络请求(同步或异步上传/下载数据)、本地存储(保存备忘录内容)等。 5. **事件处理**:微信小程序支持多种事件,如点击、滑动等。通过绑定事件...
在这个“微信小程序开发-备忘录案例源码.zip”压缩包中,包含了用于教学或自学习目的的微信小程序备忘录功能的完整源代码。下面将详细阐述微信小程序的开发环境搭建、基本结构、核心语法以及备忘录功能的实现。 ...
微信小程序备忘录源码及其丰富的学习资源,无疑为小程序的开发学习之路提供了一条捷径。对于希望在小程序开发领域快速成长的开发者而言,这样的学习资源弥足珍贵。通过这套源码的学习和实践,开发者不仅可以提升自己...
【标题】"基于thinkphp的一个通讯备忘录" 指的是使用了ThinkPHP框架开发的一款用于记录和管理通信信息的系统。ThinkPHP是中国国内较为流行的一个开源PHP框架,它提供了一套完整的MVC(Model-View-Controller)模式,...
开发者可以研究这些代码,了解如何将jQuery和JavaScript结合使用来创建自定义的日历备忘录控件,同时也可以学习如何组织和处理JSON数据。这个案例对于想要提升前端技能,特别是对日历组件开发感兴趣的开发者来说,是...
【集成闹钟及备忘录功能的js日历】是一个基于JavaScript实现的多功能日历组件,它将传统的日历视图与闹钟和备忘录功能相结合,为用户提供了一个便捷的时间管理和提醒工具。这个组件特别适合于网页应用,能够帮助用户...
- `js` 文件夹:这是插件的核心代码所在,包含了JavaScript脚本,负责处理用户交互、备忘录功能以及与HTML元素的交互。主要的插件逻辑很可能在其中的一个或多个.js文件中。 **应用场景** 这个插件适用于任何需要...