Поскольку большая часть разрабатываемого в настоящее время программного обеспечения относится к проектам розничной торговли и общественного питания, требования к расчету суммы, естественно, будут относительно высокими. И у js всегда были недостатки в расчете точности, поэтому я рекомендую библиотеку классов —math.js
JS сложение, вычитание, умножение и деление
1. Арифметика сложения: 0,1+0,2
console.log(0.1+0.2);
结果是:0.30000000000000004
2. Арифметика вычитания: 0,8-0,7
console.log(0.8-0.7)
结果是:0.10000000000000009
3. Арифметика умножения: 5,10*100
console.log(5.10*100)
结果是:509.99999999999994
4. Арифметика с делением 6.10/0.1
console.log(6.10/0.1)
结果是:60.99999999999999
Результат операции JavaScript с числами с плавающей запятой неверен, поскольку проблема с хранением числа с плавающей запятой приводит к неправильному результату вычисления.
Math.js
Math.js— это расширенная математическая библиотека для JavaScript и Node.js. Он имеет гибкий синтаксический анализатор выражений, поддерживающий символьные вычисления, большое количество встроенных функций и констант, а также предоставляет интегрированное решение для обработки различных типов данных, таких как числа, большие числа, комплексные числа, дроби, единицы и матрицы, мощный и прост в использовании.
- Библиотека кода:GitHub.com/Джо сказал Чонгук/нет…
- Документация:математика JS.org/docs/index. …
характерная черта
- Поддерживает числа, большие числа, комплексные числа, дроби, единицы измерения, строки, массивы и матрицы.
- Совместим со встроенной математической библиотекой JavaScript, использование математики такое же, низкий порог
- Содержит гибкий анализатор выражений.
- Выполните символьные вычисления.
- Поставляется с множеством встроенных функций и констант.
- Может также использоваться как приложение командной строки.
- Работает на любом движке JavaScript.
- Это легко расширить.
- Открытый исходный код.
Помогите с уроком:
1. Традиционное использование, знакомство с math.js
<!DOCTYPE HTML>
<html>
<head>
<script src="https://unpkg.com/mathjs@7.0.1/dist/math.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
const ans = math.add(0.1, 0.2) // 0.30000000000000004
console.log(math.format(ans, {precision: 14})) // '0.3'
console.log(math.sqrt(4).toString()) // 2
</script>
</body>
</html>
2. Эс модуль
установка нпм
npm install mathjs
использовать
import { create, all } from 'mathjs'
const config = {
number: 'BigNumber',
precision: 20
}
const math = create(all, config);
export default {
methods: {
//开方
numberSqrt: function(arg1){
return math math.sqrt(arg1)
},
//除
numberExcept: function (arg1, arg2) {
return math.divide(arg1, arg2);
},
//乘
numberRide: function (arg1, arg2) {
return math.multiply(arg1, arg2);
},
//加
numberAdd:function (arg1,arg2) {
return math.add(arg1, arg2);
}
//减
numberSub:function (arg1,arg2) {
return math.add(arg1, -arg2);
}
}
}
math.js общие математические функции
<script type="text/javascript">
// expressions
console.log(math.evaluate('1.2 * (2 + 4.5)')) // 7.8
console.log(math.evaluate('12.7 cm to inch')) // 5 inch
console.log(math.evaluate('sin(45 deg) ^ 2')) // 0.5
console.log(math.evaluate('9 / 3 + 2i')) // 3 + 2i
console.log(math.evaluate('det([-1, 2; 3, 1])')) // -7
// mixed use of different data types in functions
console.log(math.add(5, [9, 6])) // number + Array, [14, 11]
console.log(math.multiply(math.unit('5 mm'), 3)) // Unit * number, 15 mm
console.log(math.subtract([2, 3, 4], 10)) // Array - number, [-8, -7, -6]
console.log(math.add(math.matrix([4, 1]), [2, 9])) // Matrix + Array, [6, 10]
// chain operator
console.log(math.chain(3)
.add(4)
.subtract(2)
.done()) // 5
console.log(math.chain( [[1, 2], [3, 4]] )
.subset(math.index(0, 0), 8)
.multiply(3)
.done()) // [[24, 6], [9, 12]]
</script>