패키지, 저장소 및 앱 카테고리 검색

패키지 상세v3.2.6

decimal

decimal 패키지는 정밀도를 잃지 않고 소수를 다룰 수 있게 해줍니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
105만
좋아요
433
Pub 점수
160

패키지 설치

flutter pub add decimal

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

decimal 패키지는 Dart에서 정밀한 십진수 계산을 제공하여 부동소수점 연산에서 흔히 발생하는 정밀도 손실 없이 십진수를 정확하게 다룰 수 있게 해줍니다. 정확한 십진수 표현과 산술을 지원하므로 금융 계산 및 높은 정확도가 필요한 기타 시나리오에 적합합니다. 이 패키지는 모바일, 웹, 데스크톱을 포함한 모든 주요 플랫폼과 호환됩니다. 반올림 모드와 스케일에 대한 완전한 제어를 가능하게 하는 깔끔한 API를 제공하여 십진수 값을 생성하고 조작하며 형식화할 수 있습니다.

사용 사례

  • 재무 계산
  • 과학 계산
  • 통화 처리
  • 정확한 데이터 처리
  • 단위 변환

주요 기능

  • 고정밀 소수 연산
  • 부동 소수점 정밀도 손실 없음
  • 반올림 모드 지원
  • 크로스 플랫폼 호환성
  • 사용하기 쉬운 API

적합한 대상

  • 정확한 십진수 수학을 필요로 하는 응용 프로그램
  • 재무 또는 회계 소프트웨어
  • 정밀도가 중요한 시스템
  • 개발자들이 부동소수점 정확도 문제를 피하고 있습니다

고려 사항

  • 더블보다 약간 높은 메모리 사용량
  • 성능 집약적인 수치 작업 부하에 최적화되지 않음
  • 내장 숫자 유형 대신 명시적인 사용이 필요합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Dart Decimals

Build Status

This project enable to make computations on decimal numbers without losing precision like double operations.

For instance :

// with double
print(0.2 + 0.1); // displays 0.30000000000000004

// with decimal
print(Decimal.parse('0.2') + Decimal.parse('0.1')); // displays 0.3

Usage

To use this library in your code :

  • add a dependency in your pubspec.yaml :
dependencies:
  decimal:
  • add import in your dart code :
import 'package:decimal/decimal.dart';
  • Start computing using Decimal.parse('1.23').

Hint : To make your code shorter you can define a shortcut for Decimal.parse :

final d = (String s) => Decimal.parse(s);
d('0.2') + d('0.1'); // => 0.3

Formatting with intl

You can use the intl package to format decimal with DecimalFormat from the package:decimal/intl.dart library:

import 'package:decimal/decimal.dart';
import 'package:decimal/intl.dart';

main() {
  var value = Decimal.parse('1234.56');
  var formatter = DecimalFormatter(NumberFormat.decimalPattern('en-US'));
  print(formatter.format(value));
}

Tip: you can define an extension to make it more fluent:

extension on Decimal {
  String formatWith(NumberFormat formatter) => formatter.format(DecimalIntl(this));
}
main() {
  var value = Decimal.parse('1234.56');
  var formatter = DecimalFormatter(NumberFormat.decimalPattern('en-US'));
  print(value.formatWith(formatter));
}

WARNING: For now (2024.05.30) intl doesn't work with NumberFormat.maximumFractionDigits greater than 15 on web plateform and 18 otherwise.

Parsing with intl

You can use the NumberFormat from intl package to parse formatted decimals

var currencyFormatter = DecimalFormatter(NumberFormat.simpleCurrency(name: 'USD'));
currencyFormatter.parse('\$3.14'); // => 3.14

License

Apache 2.0

카테고리

의존성

의존성 목록 2 개

소스 저장소

이 패키지를 사용하는 프로젝트

순위