【问题标题】:What's the difference between double.toStringAsFixed and toStringAsPrecision in dartlang?dartlang 中的 double.toStringAsFixed 和 toStringAsPrecision 有什么区别?
【发布时间】:2019-08-22 12:34:02
【问题描述】:

我想知道这两种方法有什么区别。我认为toStringAsFixed 会修剪数字,但从 doc 中的示例来看,两者都是四舍五入的数字。

这里是相关问题:https://github.com/dart-lang/sdk/issues/25947

【问题讨论】:

    标签: dart


    【解决方案1】:

    1. Double.toStringAsPrecision(int)

    num 转换为double 并返回具有精确有效数字的String 表示。

    参数精度必须是满足:1 <= precision <= 21的整数。

    例子:

    1.59.toStringAsPrecision(1); // 2
    1.59.toStringAsPrecision(2); // 1.6
    1.59.toStringAsPrecision(3); // 1.59
    1.59.toStringAsPrecision(4); // 1.590
    1e15.toStringAsPrecision(3);    // 1.00e+15
    1234567.toStringAsPrecision(3); // 1.23e+6
    1234567.toStringAsPrecision(9); // 1234567.00
    12345678901234567890.toStringAsPrecision(20); // 12345678901234567168
    12345678901234567890.toStringAsPrecision(14); // 1.2345678901235e+19
    0.00000012345.toStringAsPrecision(15); // 1.23450000000000e-7
    0.0000012345.toStringAsPrecision(15);  // 0.00000123450000000000
    

    2。 Double.toStringAsFixed(int)

    它还会对数字进行四舍五入,但在小数点后,并根据您提供的int 值返回结果。

    double d = 1.59;
    String fixed1 = d.toStringAsFixed(1); // 1.6
    String fixed2 = d.toStringAsFixed(2); // 1.59
    String fixed3 = d.toStringAsFixed(3); // 1.590
    String fixed4 = d.toStringAsFixed(4); // 1.5900
    

    【讨论】:

      猜你喜欢
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      • 2011-11-22
      • 2015-03-26
      • 2013-08-19
      相关资源
      最近更新 更多