`
cooperay
  • 浏览: 215652 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

javascript 对于保留小数位的处理

阅读更多

 

转自:http://blog.csdn.net/lxh413/archive/2010/02/01/5276584.aspx

在开发过程中经常遇到要调整小数的格式,如保留小数点后两位等等。方法也颇为常见,备忘如下。

 第一种,利用math.round 

   var original=28.453
1) //round "original" to two decimals
var result=Math.round(original*100)/100;  //returns 28.45
2) // round "original" to 1 decimal
var result=Math.round(original*10)/10;  //returns 28.5

第二种,js1.5以上可以利用toFixed(x) ,可指定数字截取小数点后 x位

3) //round "original" to two decimals
var result=original.toFixed(2); //returns 28.45

4) // round "original" to 1 decimal
var result=original.toFixed(1); //returns 28.5

以上两种方法最通用,但却无法满足某些特殊要求,比如保留小数点后两位,如果不满两位,不满两位则补零。此时就有了第三种方法。

第三种,转换函数,这段代码来源于国外一个论坛。

 

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
	document.roundform.roundedfield.value = newString; // Output the result to the form field (change for your purposes)
}
 


 

 

 

5) //round "original" to two decimals
var result=original.toFixed(2); //returns 28.45

6) // round "original" to 1 decimal
var result=original.toFixed(1); //returns 28.5

var original=28.4

var result=original.toFixed(2); //returns 28.40

 

分享到:
评论

相关推荐

    js保留小数位数

    ### JavaScript 保留小数位数方法详解 在JavaScript编程中,处理数字的精度问题一直是个让人头疼的问题。尤其是在涉及财务计算、数据统计等对精度有较高要求的应用场景中,如何精确控制数字的小数位数变得尤为重要...

    javascript 使用toFixed保留两位小数.pdf

    总结来说,`toFixed()`是JavaScript中处理数字格式化和保留小数位数的关键工具,特别是当需要将数字转换为具有固定小数位数的字符串时。不过,使用时要注意它返回的是字符串类型,如果需要进行数学运算,记得先将其...

    js保留两位小数

    ### JavaScript保留两位小数的方法详解 在日常的前端开发工作中,我们经常需要处理数值运算,尤其是在涉及财务计算或展示精确度较高的数据时,对数值进行格式化处理是必不可少的一个环节。其中,一个常见的需求就是...

    C#.NET,JAVASCRIPT数字进行四舍五入保留两位小数

    这里我们将深入探讨C#.NET和JavaScript中如何实现数字四舍五入并保留两位小数的方法。 首先,让我们看看C#.NET中的解决方案。在C#中,我们可以使用`Math.Round`方法来实现四舍五入。这个方法接受一个double类型的值...

    javascript实现保留两位小数的多种方法

    在编程语言JavaScript中,经常需要将数字格式化为保留特定数量的小数位数,尤其是在处理金融或需要...在处理特殊的数值,如金融数据时,还需要特别注意四舍五入的规则和小数位的精确处理,以确保数值的准确性和一致性。

    JavaScript保留两位小数的2个自定义函数

    然而,JavaScript的内置函数并不直接提供保留小数位数的功能,所以我们需要编写自定义函数来实现这一目标。本篇文章将详细介绍两个JavaScript自定义函数,它们分别用于保留两位小数并处理不同情况。 首先,我们来看...

    JavaScript如何实现对数字保留两位小数一位自动补零

    如果原始数字的小数位数不足两位,就需要在小数点后添加零以满足格式要求。 具体步骤如下: 1. 使用`parseFloat`函数确保输入值能够被正确地处理为浮点数格式,即使输入值原本是字符串类型。 2. 将转换后的浮点数...

    js实现保留两位小数

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

    js四舍五入-保留两位小数

    在JavaScript中实现四舍五五并保留两位小数的功能是常见的需求之一,特别是在处理财务数据或需要精确显示数值的应用场景下。根据提供的信息,我们将深入探讨如何在JavaScript中实现这一功能,并对比其他语言如Java的...

    Javascript四舍五入(一)源码

    总结来说,本文介绍并分析了JavaScript中的`Math.round()`和`Math.pow()`函数,同时展示了两种自定义函数的实现,即`ForDight()`和`cheng()`,它们用于保留指定小数位数。这些方法不仅能够帮助开发者更好地理解...

    JavaScript小数点精确计算

    由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将深入探讨这个问题,并提供一些解决方案。 首先,我们来理解...

    javaScript强制保留两位小数的输入数校验和小数保留问题

    接着,要实现小数位保留两位的方法,可以通过JavaScript内置的函数来处理。`parseFloat()`函数可以将字符串转换为数字。`isNaN()`函数用于检查一个值是否是非数字值,如果`x`是特殊的非数字值`NaN`(或者能被转换为...

    JS中移除非数字最多保留一位小数

    4. 还可以使用 `toFixed` 方法来实现保留小数位数,并通过 `Math.pow` 方法进行数值的放大缩小,以达到四舍五入的效果。这通常适用于需要特定保留位数小数的场景。 最后,上述知识点在文档中通过具体的函数实现和...

    js保留两位小数使用toFixed实现

    `Math.round()`函数在进行四舍五入时,会根据数值的大小决定是否添加额外的小数位。例如,如果你有0.9996并乘以100得到99.96,然后使用`Math.round(99.96)`,结果可能会是99.96000000000001,这是由于JavaScript的...

    JavaScript中判断为整数的多种方式及保留两位小数的方法

    本文将介绍几种在JavaScript中判断为整数的不同方法以及保留两位小数的方法。 一、使用取余运算符判断整数 取余运算符(%)是判断一个数字是否为整数的简便方法。根据数学原理,任何整数除以1的余数都是0。因此,...

    JS实现保留n位小数的四舍五入问题示例

    然而,直接使用Math.round()并不能满足保留小数位的需求。因此,需要通过一些数学运算来扩展这个功能,使得可以指定保留的小数位数。 在给定的代码片段中,定义了一个名为getFloat的函数,它接受两个参数:number...

    最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式

    综上所述,这份文档内容详细地介绍了在JavaScript中使用正则表达式对数字进行验证的方法,涵盖了整数、小数和实数,以及不同小数位数的保留验证,对于前端开发人员在处理用户输入数据时非常有帮助。

    用js格式化金额可设置保留的小数位数

    如果用户没有指定保留的小数位数,函数将默认保留两位小数。这意味着,不管输入的数值是什么,输出的结果都将按照指定的规则格式化。 函数的核心逻辑是先将输入的金额转换为浮点数,并清除其中的非数字、非点和非...

Global site tag (gtag.js) - Google Analytics