`

JavaScript之保留小数点后指定位数

阅读更多

 

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

 第一种,利用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

 

分享到:
评论

相关推荐

    javascript中RegExp保留小数点后几位数的方法分享

    接下来,我们定义了一个变量num,用来指定我们希望保留的小数点后的位数,这里设置为5位。 紧接着,我们创建了一个新的RegExp对象re。在构造函数RegExp中,我们定义了一个正则表达式字符串,这里使用的模式是"\d+\....

    js保留小数点后几位的写法

    这样就实现了保留小数点后指定位数的功能。 举个例子,如果我们想保留数值2.3456789到小数点后两位,我们可以调用round函数,传入2.3456789和2作为参数,函数将输出2.35。这是因为在四舍五入的操作下,小数点后第三...

    JavaScript小数点精确计算

    1. **使用toFixed()方法**:此方法可以将数字转换为字符串,并保留指定位数的小数。例如,`num.toFixed(2)`将保留两位小数。但要注意,这种方法会四舍五入,可能改变数值的原始精度。 2. **使用Math对象的方法**:...

    javascript 取小数点后几位几种方法总结

    在JavaScript编程中,经常需要对浮点数进行格式化,特别是当我们希望保留小数点后一定位数的小数时。以下介绍的四种方法可以帮我们实现这一目标。 首先,我们可以通过使用String对象的substring()方法来截取小数点...

    实现js保留小数点后N位的代码

    本文将深入探讨如何在JS中保留小数点后指定的位数,并提供多种实现方式。 首先,最常见的方法是使用`Number.prototype.toFixed()`函数。这个内置函数可以将数字四舍五入到指定的小数位数。例如,在提供的代码段中:...

    js输出数据精确到小数点后n位代码

    在JavaScript编程中,经常需要处理小数点后的数字,对其进行精确控制,比如保留固定位数的小数。这篇文章将介绍两种在JavaScript中实现小数点后精确到n位的方法,并通过实例演示其使用。 首先,要实现小数点后保留n...

    几个Javascript的小工具

    - 最后,根据精度截取结果,保留小数点后的指定位数。 4. **去除空格**: 提供了两个辅助函数,`lTrim`和`rTrim`,以及一个通用函数`trim`,用于去除字符串两侧的空格。 - `lTrim(oldStr)`移除字符串左侧的所有...

    调整小数的格式保留小数点后两位

    `toFixed(x)` 是JavaScript中用于数字格式化的标准方法,它可以将数字四舍五入到小数点后指定的位数。`original.toFixed(2)` 会返回保留两位小数的字符串,`original.toFixed(1)` 则保留一位小数。这种方法简单易用...

    cJSON库可以更改数字精度

    `.9lf`是一个格式控制符,其中`9`指定了小数点后的位数,`l`指定了长浮点型(double)。如果你想要更高的精度,可以增加小数点后的位数,如`.15lf`会保留15位小数。如果希望更少的位数,可以减少这个数字。 **如何...

    JS格式化数字保留两位小数点示例代码

    在JavaScript中,格式化数字保留两位小数点是一个常见的需求,这通常用于显示货币、百分比或者其他需要精确到小数点后两位的数据。在本文中,我们将探讨几种不同的方法来实现这一功能。 首先,JavaScript提供了一个...

    JS取数字小数点后两位或n位的简单方法

    在JavaScript编程中,经常需要对数字进行格式化,特别是在金融和前端界面展示时,经常要取小数点后的位数。本文将介绍一种简单有效的方法,用于获取数字小数点后固定位数的值,无论是两位还是n位。 JavaScript中的...

    JavaScript 获取任一float型小数点后两位的小数

    在JavaScript中,有时我们需要对浮点数(float型)进行操作,特别是获取小数点后特定位数的数值。这通常涉及到精度处理和四舍五入的问题。以下是一些方法来实现这一目标,特别是获取小数点后两位的数字。 1. **基本...

    recharge-master.rar

    3. **保留小数点后两位**:这是标准货币交易中常见的精度要求,确保交易金额精确到分。在项目中,可能会有一个函数或者规则来检查并自动调整用户输入,使其始终符合这个格式。 4. **小数点后任意位数**:除了基本的...

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

    在总结以上方法后,我们可以看到,虽然JavaScript提供了多种保留小数位数的方法,但每种方法都有其适用场景和局限性。在实际开发中,需要根据具体的需求和环境来选择合适的保留小数位数的方法。对于需要在多种浏览器...

    正则验证小数点后面只能有两位数的方法

    `replace`函数用于在匹配到的内容后直接截取到小数点后两位,从而保证小数点后不会有多余的数字。 5. **jQuery Validate插件**:该插件提供了一个非常方便的验证规则添加方法`jQuery.validator.addMethod`。例如,...

    js取小数点后两位四种方法

    `toFixed(2)`是JavaScript中专门用于格式化数字,保留指定位数的小数的方法。它返回一个字符串,而不是原始的数字类型。 ```javascript function getnum() { var num = 22.123456; alert(num.toFixed(2)); } ...

    js保留两位小数

    在给定的部分内容中,提供了一个简单的函数`tofloat`,用于将传入的浮点数`src`保留到指定位数`pos`。该函数的核心逻辑在于利用数学方法对数值进行四舍五入处理,然后除以相应的幂次来达到保留位数的效果。 ```...

    JS保留小数点(四舍五入、四舍六入)实现思路及实例

    现代JavaScript引擎提供了 `toFixed()` 和 `toPrecision()` 方法,它们分别用于固定小数点后的位数和指定有效数字的位数进行格式化。例如, `toFixed(2)` 保证保留两位小数,而 `toPrecision(3)` 则保证保留三位...

Global site tag (gtag.js) - Google Analytics