码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript解决精度问题

时间:2018-02-02 20:13:19      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:orm   range   get   cloud   body   its   highlight   doc   com   

<!doctype html>
<html lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Document</title>
		<script type="text/javascript" src="math.js"></script>
	</head>

	<body>
		<script type="text/javascript">
			alert(math.sqrt(-4)); // 2i
			math.round(math.e, 3); // 2.718
			math.atan2(3, -3) / math.pi; // 0.75
			math.log(10000, 10); // 4
			math.sqrt(-4); // 2i
			math.pow([
				[-1, 2],
				[3, 1]
			], 2); // [[7, 0], [0, 7]]

			// expressions
			alert(math.eval(‘12 / (2.3 + 0.7)‘)); // 4
			math.eval(‘12.7 cm to inch‘); // 5 inch
			math.eval(‘sin(45 deg) ^ 2‘); // 0.5
			math.eval(‘9 / 3 + 2i‘); // 3 + 2i
			math.eval(‘det([-1, 2; 3, 1])‘); // -7
			/*默认精度设置为64位*/
			math.config({
				number: ‘BigNumber‘,
				precision: 64
			});
			alert(math.eval(‘0.1+0.2‘));
			/*包含開始,去掉結尾*/
			alert(math.range(1, 4));

			console.log(math.add(0.1, 0.2)) //0.30000000000000004
			console.log(math.format((math.add(math.bignumber(0.1), math.bignumber(0.2))))) //‘0.3‘

			/*纯JavaScript代码解决*/
			parseFloat((数学表达式).toFixed(digits)); // toFixed() 精度参数须在 0 与20 之间
			parseFloat((0.1 + 0.2).toFixed(10)) //结果为0.3
			parseFloat((0.3 / 0.1).toFixed(10)) // 结果为 3  
			parseFloat((0.7 * 180).toFixed(10)) //结果为126
			parseFloat((1.0 - 0.9).toFixed(10)) // 结果为 0.1   
			parseFloat((9.7 * 100).toFixed(10)) // 结果为 970 
			parseFloat((2.22 + 0.1).toFixed(10)) // 结果为 2.32
		</script>
	</body>

</html>

math.js

http://cdnjs.cloudflare.com/ajax/libs/mathjs/3.20.1/math.js

JavaScript解决精度问题

标签:orm   range   get   cloud   body   its   highlight   doc   com   

原文地址:https://www.cnblogs.com/leijing0607/p/8406299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!