转自: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
分享到:
相关推荐
### JavaScript 保留小数位数方法详解 在JavaScript编程中,处理数字的精度问题一直是个让人头疼的问题。尤其是在涉及财务计算、数据统计等对精度有较高要求的应用场景中,如何精确控制数字的小数位数变得尤为重要...
总结来说,`toFixed()`是JavaScript中处理数字格式化和保留小数位数的关键工具,特别是当需要将数字转换为具有固定小数位数的字符串时。不过,使用时要注意它返回的是字符串类型,如果需要进行数学运算,记得先将其...
### JavaScript保留两位小数的方法详解 在日常的前端开发工作中,我们经常需要处理数值运算,尤其是在涉及财务计算或展示精确度较高的数据时,对数值进行格式化处理是必不可少的一个环节。其中,一个常见的需求就是...
这里我们将深入探讨C#.NET和JavaScript中如何实现数字四舍五入并保留两位小数的方法。 首先,让我们看看C#.NET中的解决方案。在C#中,我们可以使用`Math.Round`方法来实现四舍五入。这个方法接受一个double类型的值...
在编程语言JavaScript中,经常需要将数字格式化为保留特定数量的小数位数,尤其是在处理金融或需要...在处理特殊的数值,如金融数据时,还需要特别注意四舍五入的规则和小数位的精确处理,以确保数值的准确性和一致性。
然而,JavaScript的内置函数并不直接提供保留小数位数的功能,所以我们需要编写自定义函数来实现这一目标。本篇文章将详细介绍两个JavaScript自定义函数,它们分别用于保留两位小数并处理不同情况。 首先,我们来看...
如果原始数字的小数位数不足两位,就需要在小数点后添加零以满足格式要求。 具体步骤如下: 1. 使用`parseFloat`函数确保输入值能够被正确地处理为浮点数格式,即使输入值原本是字符串类型。 2. 将转换后的浮点数...
标题中的知识点为“js实现保留两位小数”,这一功能在JavaScript编程中经常会被用到。保留两位小数通常用于显示货币值、计算结果或是其他需要精确到小数点后两位的数值。在标题中提及的实现方式是通过编写一个函数来...
在JavaScript中实现四舍五五并保留两位小数的功能是常见的需求之一,特别是在处理财务数据或需要精确显示数值的应用场景下。根据提供的信息,我们将深入探讨如何在JavaScript中实现这一功能,并对比其他语言如Java的...
总结来说,本文介绍并分析了JavaScript中的`Math.round()`和`Math.pow()`函数,同时展示了两种自定义函数的实现,即`ForDight()`和`cheng()`,它们用于保留指定小数位数。这些方法不仅能够帮助开发者更好地理解...
由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将深入探讨这个问题,并提供一些解决方案。 首先,我们来理解...
接着,要实现小数位保留两位的方法,可以通过JavaScript内置的函数来处理。`parseFloat()`函数可以将字符串转换为数字。`isNaN()`函数用于检查一个值是否是非数字值,如果`x`是特殊的非数字值`NaN`(或者能被转换为...
4. 还可以使用 `toFixed` 方法来实现保留小数位数,并通过 `Math.pow` 方法进行数值的放大缩小,以达到四舍五入的效果。这通常适用于需要特定保留位数小数的场景。 最后,上述知识点在文档中通过具体的函数实现和...
`Math.round()`函数在进行四舍五入时,会根据数值的大小决定是否添加额外的小数位。例如,如果你有0.9996并乘以100得到99.96,然后使用`Math.round(99.96)`,结果可能会是99.96000000000001,这是由于JavaScript的...
本文将介绍几种在JavaScript中判断为整数的不同方法以及保留两位小数的方法。 一、使用取余运算符判断整数 取余运算符(%)是判断一个数字是否为整数的简便方法。根据数学原理,任何整数除以1的余数都是0。因此,...
然而,直接使用Math.round()并不能满足保留小数位的需求。因此,需要通过一些数学运算来扩展这个功能,使得可以指定保留的小数位数。 在给定的代码片段中,定义了一个名为getFloat的函数,它接受两个参数:number...
综上所述,这份文档内容详细地介绍了在JavaScript中使用正则表达式对数字进行验证的方法,涵盖了整数、小数和实数,以及不同小数位数的保留验证,对于前端开发人员在处理用户输入数据时非常有帮助。
如果用户没有指定保留的小数位数,函数将默认保留两位小数。这意味着,不管输入的数值是什么,输出的结果都将按照指定的规则格式化。 函数的核心逻辑是先将输入的金额转换为浮点数,并清除其中的非数字、非点和非...