在项目开发过程中,因为对应的行业不同,对于财务小数和数量的准确度不同,对与保留的小数也有很高的要求,在这里我汇总了一下网上的一些实现方式,并通过真实的项目验证,在这里作为备份,以备以后查找方便。
在实现中,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. **存储和...
本项目名为“备忘录_备忘录_微信小程序_wherevermpo_”,显然是一个专门针对备忘录功能开发的微信小程序。下面将详细阐述与这个小程序相关的知识点。 首先,我们要理解微信小程序的基本架构和开发环境。微信小程序...
在本项目实例中,我们探讨的是一个基于微信小程序的备忘录应用。微信小程序是一种轻量级的应用开发平台,特别适合构建无需下载安装即可使用的移动应用。该项目旨在提供记录文字、计时以及设置提醒的基本功能,以满足...
下面详细解析备忘录模式在JavaScript中的实现原理与用法。 首先,备忘录模式的原理在于它能够在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。之后,当需要时,可以将对象恢复到原先保存...
移动端备忘录是一种轻量级的应用程序,通常用于个人或团队记录待办事项、想法、笔记等信息。在移动设备上,备忘录应用程序提供了一种便捷的方式,让用户随时随地记录重要信息,无论是在工作中还是在生活中。这篇内容...
在本项目中,我们主要探讨如何使用jQuery和Bootstrap框架来创建一个简单的Web备忘录应用。这个应用利用HTML5的强大功能,为用户提供了一个方便、直观的界面,以便他们记录日常事务,并设定提醒时间,以便在特定时刻...
标题中的“记事本备忘录”指的是一个软件或应用程序,它结合了传统的文本编辑器(记事本)和备忘录管理功能。在IT领域,这样的应用通常用于记录简单的文字信息,设置提醒,或者作为轻量级的任务管理工具。 在描述中...
JavaScript中的小数点精确计算是开发者经常会遇到的一个挑战。由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将...
在本示例中,我们将探讨如何使用jQuery实现一个日历表功能,并添加日期备忘录代码。这个功能可以用于网页应用程序,帮助用户方便地查看和管理他们的日期提醒。 首先,我们需要引入jQuery库。这通常通过在HTML文件中...
《Flutter备忘录:构建跨平台小工具的实践与技术解析》 Flutter,谷歌推出的开源UI框架,以其高效、简洁的开发方式,逐渐在移动应用开发领域占据一席之地。本篇文章将深入探讨如何利用Flutter框架创建一个备忘录...
手机备忘录源代码是开发一个功能齐全、用户体验良好的手机应用程序的关键组成部分,它通常涉及到多个技术领域,包括前端用户界面、后端数据处理以及可能的网络通信。在这里,我们将深入探讨构建这样的应用所需的一些...
在备忘录应用中,可能用到的API包括获取用户授权(如存储权限)、网络请求(同步或异步上传/下载数据)、本地存储(保存备忘录内容)等。 5. **事件处理**:微信小程序支持多种事件,如点击、滑动等。通过绑定事件...
在这个“微信小程序开发-备忘录案例源码.zip”压缩包中,包含了用于教学或自学习目的的微信小程序备忘录功能的完整源代码。下面将详细阐述微信小程序的开发环境搭建、基本结构、核心语法以及备忘录功能的实现。 ...
本文将详细讲解“简单的备忘录模板,事项列表,创建计划事项小程序前端模板”的相关知识点,包括小程序的基本概念、前端开发技术以及源码软件的应用。 首先,我们要理解什么是小程序。小程序是微信、支付宝等平台...
1. **前端界面**:备忘录系统的用户界面通常使用HTML、CSS和JavaScript构建,提供友好的交互体验。JavaScript负责处理用户的实时交互,如添加、编辑备忘录,而PHP主要在后端处理数据和业务逻辑。 2. **后端逻辑**:...
源码部分是实现备忘录功能的小程序代码,包括了前端的WXML(微信小程序标记语言)、WXSS(微信小程序样式语言)和JavaScript文件。WXML用于结构布局,类似于HTML,但专为微信小程序设计;WXSS则类似于CSS,负责定义...
4. **状态管理与数据持久化**:在JavaScript文件中,开发者会使用微信小程序提供的`Page`对象来管理页面状态,存储用户创建的备忘录。为了在关闭后还能恢复备忘录,可能还会使用微信小程序的本地存储API将数据保存到...
JavaScript的DOM操作用于在页面上显示和更新备忘录条目。 4. **天气预报**:天气预报功能通常需要从外部API获取数据,如OpenWeatherMap等,然后使用Ajax(Asynchronous JavaScript and XML)或Fetch API异步加载...
标题中的“纯HTML开发的桌面助手(闹钟、日历、备忘录等)”意味着这个项目使用HTML作为主要的前端开发语言,构建了一个类似桌面应用的程序,它集成了常见的实用功能,如闹钟、日历和备忘录。在IT领域,这通常涉及到...