【问题标题】:How to round a number in dart? [duplicate]如何在飞镖中四舍五入? [复制]
【发布时间】:2019-11-21 22:08:33
【问题描述】:

我想取一个双精度数。

Double x = 5.56753;
x.toStringAsFixed(2);

当我输入这个时,它给出了 5.57000。 但我想得到5.57。我如何获得它?

【问题讨论】:

    标签: dart


    【解决方案1】:

    num类包含函数round():

    Num

     double numberToRound = 5.56753;
        print(numberToRound.round()); 
        //prints 6
    

    如果你想要小数

    double n = num.parse(numberToRound.toStringAsFixed(2));
      print(n);
      //prints 5.57
    

    check comment sujestion

    【讨论】:

    • 在发布此评论时(即 2021 年 3 月 28 日),该解决方案仍然违反了众所周知的“以 5 结尾的数字”四舍五入规则。请参阅此答案 => [stackoverflow.com/a/66840734/3002719] 了解符合第 5 轮规则的 DART 解决方案。
    【解决方案2】:

    四舍五入结帐:https://api.dartlang.org/stable/2.4.0/dart-core/double/round.html

    四舍五入不适用于您的情况,因为文档说:

    • 返回最接近此的integer

    所以它会给出6 而不是5.57

    您的解决方案:

    double x = 5.56753;
    String roundedX = x.toStringAsFixed(2);
    print(roundedX);
    

    【讨论】:

    • 他不能接受,因为他的声望很低
    • 任何人都可以接受 - 点赞需要 15 个声望,但接受可能需要 1 个声望。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多