【问题标题】:Take decimal numbers only in dart/flutter仅在 dart/flutter 中取十进制数
【发布时间】:2020-01-14 16:53:36
【问题描述】:

我有一个数字,我想只取小数部分并将其转换为具有一定精度的整数。

我怎样才能在 Dart 语言或颤振中做到这一点?

例如:

把这个 247.64646122587197 变成这个 6464

去掉浮点数,只取4位小数,转换成整数。

【问题讨论】:

  • 不是特定于飞镖,而是floor((x % 1) * 10000)

标签: flutter dart


【解决方案1】:

你也可以这样做

void main() {
    final double abc=247.64646122587197;
    int y = int.tryParse(abc.toString().split('.')[1].substring(0,4));
    print(y);
}

输出:6464

【讨论】:

  • 技术上可行,但效率极低。对于少于 4 个十进制数字的数字,这也会引发异常。根据经验,除非绝对必要,否则不应将数字转换为字符串(如果您最终只是将其直接转换回来,那么您最好有一个非常好的理由这样做)。
【解决方案2】:

你可以试试这个:

return (247.64646122587197 * 10000).toInt() % 10000;

【讨论】:

    【解决方案3】:

    这样的事情应该可以工作:

    ((x % 1) * pow(10, 4)).floor()
    

    【讨论】:

      【解决方案4】:
      double value = 247.64646122587197;
      double decimalValue = value - value.toInt();
      print(decimalValue.toStringAsFixed(4))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 2019-09-02
        • 2014-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多