`
fengyie007
  • 浏览: 153676 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

javascript精度计算

阅读更多
function accDiv(arg1, arg2) {
	var t1 = 0, t2 = 0, r1, r2;
	try {
		t1 = arg1.toString().split(".")[1].length
	} catch (e) {
	}
	try {
		t2 = arg2.toString().split(".")[1].length
	} catch (e) {
	}
	with (Math) {
		r1 = Number(arg1.toString().replace(".", ""))
		r2 = Number(arg2.toString().replace(".", ""))
		return (r1 / r2) * pow(10, t2 - t1);
	}
}
Number.prototype.div = function(arg) {
	return accDiv(this, arg);
}

function accMul(arg1, arg2) {
	var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
	try {
		m += s1.split(".")[1].length
	} catch (e) {
	}
	try {
		m += s2.split(".")[1].length
	} catch (e) {
	}
	return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}

Number.prototype.mul = function(arg) {
	return accMul(arg, this);
}

function accAdd(arg1, arg2) {
	var r1, r2, m;
	try {
		r1 = arg1.toString().split(".")[1].length
	} catch (e) {
		r1 = 0
	}
	try {
		r2 = arg2.toString().split(".")[1].length
	} catch (e) {
		r2 = 0
	}
	m = Math.pow(10, Math.max(r1, r2))
	return (arg1 * m + arg2 * m) / m
}
// 给Number类型增加一个add方法,调用起来更加方便。
Number.prototype.add = function(arg) {
	return accAdd(arg, this);
}

function Subtr(arg1, arg2) {
	var r1, r2, m, n;
	try {
		r1 = arg1.toString().split(".")[1].length
	} catch (e) {
		r1 = 0
	}
	try {
		r2 = arg2.toString().split(".")[1].length
	} catch (e) {
		r2 = 0
	}
	m = Math.pow(10, Math.max(r1, r2));
	// last modify by deeka
	// 动态控制精度长度
	n = (r1 >= r2) ? r1 : r2;
	return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
 
分享到:
评论

相关推荐

    javascript避免数字计算精度误差的方法详解.docx

    ### JavaScript避免数字计算精度误差的方法详解 #### 一、引言 在JavaScript中进行浮点数运算时,经常会出现精度误差的问题。例如,一个简单的加法运算 `0.1 + 0.2` 的结果并不是预期中的 `0.3`,而是 `0....

    JavaScript小数点精确计算

    6. **使用其他编程语言**:如果项目允许,可以使用像Java、Python等支持任意精度计算的语言进行计算,然后将结果传递给JavaScript。 总结来说,JavaScript的小数点精确计算需要开发者理解其底层机制,选择合适的...

    JavaScript计算性能对比研究.pdf

    本文对JavaScript的计算性能进行了研究,对比了JavaScript和主流编程语言Java、C++、MATLAB等语言的计算能力、数据精度以及处理时间。研究发现,在较大迭代次数条件下,JavaScript与C++、Java的数据处理时间相当,...

    js计算精度问题解决方案

    这类库通常会提供专门的算法来避免浮点数误差,比如使用大整数库(BigInt)进行高精度计算,或者使用特定的数学操作序列来减少误差。 3. **避免直接比较**:在比较浮点数时,不要直接使用`==`或`!=`,因为它们可能...

    JavaScript 精确计算(2)

    在JavaScript编程语言中,精确计算是一项重要的需求,特别是在金融、科学计算或任何需要高精度数值操作的场景。由于JavaScript的内置Number类型使用浮点数表示,这可能导致在进行大数运算时出现微小的误差。标题...

    javascript版BigDecimal类库

    总的来说,JavaScript版`BigDecimal`类库为开发者提供了一种解决JavaScript精度问题的工具,使得在进行金融计算、科学计算或其他需要高精度计算的场合下,能够得到准确的结果。通过学习和应用这个库,开发者可以更好...

    JS精度计算1、转成整数计算再转换成小数,2、toFixed,3、math.js,4、bignumber.js,5、big.js

    它使用BigNumber类型来处理大数和高精度计算,从而避免了JavaScript浮点数精度问题。例如,`math.bignumber('1234567890.123456789')`可以创建一个大数对象,之后的计算都会保持高精度。 4. **bignumber.js库** `...

    javascript避免数字计算精度误差的方法详解

    标题所提到的知识点是关于在JavaScript编程语言中,如何处理和避免在进行数字计算时出现的精度误差问题。这个问题是数字在以浮点数形式存储时,因为计算机的存储架构是以二进制为基础的,导致一些十进制小数在二进制...

    解决javascript中的浮点数计算不精确问题

    在JavaScript编程中,浮点数计算不精确是一个常见的问题,源于其内部的二进制浮点数表示方式。本文将深入探讨这个问题,并提供解决方案。首先,我们要理解为什么会出现这种不精确性。 JavaScript遵循IEEE 754标准来...

    Javascript 浮点数精确计算

    3. **使用特定库**:有一些JavaScript库,如`decimal.js`或`big.js`,专门用于处理高精度浮点数计算。这些库内部使用大整数算法,能够确保计算的精确性。 根据提供的文件名`FloatCumulateV1.html`和`js`,我们可以...

    main_half_javascript_半精度浮点数_Uint8Array_

    在JavaScript中,处理二进制数据流是常见的需求,特别是在科学计算、图形处理或网络通信等领域。`Uint8Array`是JavaScript中用于处理字节数组的类型,它提供了一种高效的方式来访问和操作二进制数据。然而,...

    jquery精度计算代码 jquery指定精确小数位

    在JavaScript和jQuery中,精度计算通常涉及到数字的四舍五入和保留小数位数的操作。这在处理货币、百分比或任何需要精确数值表示的数据时尤为重要。`toFloat`函数是一个自定义的jQuery方法,用于将HTML元素中的数值...

    JS计算精度解决方案 a-calc

    JS计算精度解决方案 a-calc

    The JavaScript Anthology.pdf

    这一章节深入探讨了JavaScript中的数字类型,包括数值运算、数学函数的使用,以及如何处理浮点数的精度问题。对于那些需要进行精确计算或数据处理的开发者来说,这部分内容尤为重要。 #### 3. 处理字符串 字符串...

    TheoremJS-用于在JavaScript中进行计算的数学库

    它可以处理浮点数和复数,并且内置了高精度计算,确保结果的准确性。 3. **矩阵和向量操作**:对于线性代数的需求,TheoremJS支持矩阵和向量的操作,包括加法、减法、乘法(包括矩阵乘法)、求逆、行列式计算等。 ...

    javascript计算器

    在“计算器2.0”这个项目中,可能包含了一个优化过的JavaScript代码实现,旨在提供一个无精度损失的计算体验。这可能包括对上述策略的运用,或者采用了一些特定的算法和数据结构来保证计算的精确性。通过查看源代码...

    浅谈JavaScript中小数和大整数的精度丢失_.docx

    理解这个问题对于编写高精度计算或金融类应用至关重要,因为在这些场景下,即使微小的精度差异也可能导致严重后果。为确保精确计算,开发人员可以考虑使用BigInt,或者依赖专门的库来处理大数和高精度计算。

    javascript小数精度丢失的完美解决方法.docx

    ### JavaScript小数精度...这些函数可以应用于各种场景下的浮点数运算,特别是在金融和统计等需要高精度计算的领域中尤为重要。开发者可以根据实际需求选择合适的函数来优化自己的代码,从而提高应用的准确性和可靠性。

    javascript 四则运算精度修正函数代码

    在编写JavaScript代码进行数值计算时,经常会遇到四则运算中精度问题的困扰。这个问题尤其在涉及到浮点数运算时更为明显。浮点数在计算机中是以二进制形式存储的,由于某些小数无法精确用二进制表示,导致了运算结果...

    JavaScript与MATLAB的计算性能差异对比研究.pdf

    本文指出,JavaScript在执行相同计算任务时,由于其在浏览器环境中运行,可能会受到更多因素的干扰,如浏览器的版本和兼容性问题,这可能会对数据处理的精度造成一定的影响。而MATLAB由于是专业科学计算软件,其数据...

Global site tag (gtag.js) - Google Analytics