Skip to content

mathjs

تابعی برای محاسبهٔ دقیق عددها که مشکل دقت اعشار شناور جاوااسکریپت را دور می‌زند و زنجیره‌سازی را هم می‌پذیرد.

API

mathjs

بازگشت

آرگومانتوضیحنوع
ComputeNumberResultشیء نتیجهٔ محاسبه{ result: number, next: Function }

پارامترها

پارامترتوضیحنوعپیش‌فرض
aعدد نخستnumberالزامی
typeنوع عمل (+، -، *، /)stringالزامی
bعدد دومnumberالزامی

ComputeNumberResult

ویژگیتوضیحنوع
resultنتیجهٔ محاسبهnumber
nextتابعی برای ادامهٔ محاسبهFunction

نمونه

کاربرد پایه

js
import { mathjs } from 'ranuts';

const result = mathjs(0.1, '+', 0.2);
console.log(result.result); // 0.3 (دقیق، نه 0.30000000000000004)

زنجیره‌سازی

js
import { mathjs } from 'ranuts';

const result = mathjs(1.3, '-', 1.2).next('+', 1.5).next('*', 2.3).next('/', 0.2);
console.log(result.result); // نتیجهٔ دقیق محاسبه

دور زدن مشکل دقت

js
import { mathjs } from 'ranuts';

// محاسبهٔ خام جاوااسکریپت دقت را از دست می‌دهد
console.log(0.1 + 0.2); // 0.30000000000000004

// با mathjs نتیجه دقیق است
const result = mathjs(0.1, '+', 0.2);
console.log(result.result); // 0.3

محاسبه‌ای بلندتر

js
import { mathjs } from 'ranuts';

const total = mathjs(100, '*', 0.1).next('+', 50).next('-', 20).next('/', 2);
console.log(total.result); // نتیجهٔ دقیق محاسبه

یادداشت‌ها

  1. رسیدگی به دقت: مشکل اعشار شناور را خودش می‌رساند و از دردسر 0.1 + 0.2 !== 0.3 جلوگیری می‌کند.
  2. زنجیره‌سازی: با متد next می‌توان محاسبه‌ها را به هم زنجیر کرد.
  3. نوع عمل‌ها: چهار عمل اصلی + (جمع)، - (تفریق)، * (ضرب) و / (تقسیم).
  4. سرعت: اندکی کندتر از عمل‌های خام است، اما دقت را تضمین می‌کند.

منتشرشده تحت مجوز MIT.