Flutter精确计算防止丢经度、Dart精确计算防止丢经度

这篇博客介绍了一个Flutter项目的工具类`NumUtil`,该类主要用于数值处理,确保在四舍五入和数学运算中避免精度丢失。通过使用`decimal`库,实现了加、减、乘、除等精确运算,并提供了四舍五入的方法,如`getNumByValueStr`和`toStringAsFixed`,确保在处理如0.015这样的数值时能正确保留两位小数。

最近做flutter项目,需要对数据进行处理,四舍五入保留两位小数,正好有个数据是“0.015”用num.dart 的String toStringAsFixed(int fractionDigits)方法,但是结果却变成了0.01和Java的double计算丢经度应该是一个道理,于是封装了计算工具类

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

/// Num Util.
class NumUtil {
  /// The parameter [fractionDigits] must be an integer satisfying: `0 <= fractionDigits <= 20`.
  static num getNumByValueStr(String valueStr, {int fractionDigits}) {
    double value = double.tryParse(valueStr);
    return fractionDigits == null
        ? value
        : getNumByValueDouble(value, fractionDigits);
  }

  /// The parameter [fractionDigits] must be an integer satisfying: `0 <= fractionDigits <= 20`.
  static num getNumByValueDouble(double value, int fractionDigits) {
    if (value == null) return null;
    String valueStr = value.toStringAsFixed(fractionDigits);
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值