【问题标题】:How do I round only millions in flutter?我如何只四舍五入数以百万计的颤振?
【发布时间】:2023-01-11 01:11:17
【问题描述】:

规则是如果值 >= 500,000 则向上舍入为 1,000,000,如果值 < 500,000 则向下舍入为 000,000
这里有一个例子,如果我有像 4,843,820,00 这样的值,它会四舍五入到 4,844,000,000
如果我的值是 1,136,362,500,它将向下舍入为 1,136,000,000
如果我有像 1,500,000 这样的值,它将四舍五入为 2,000,000;如果我有像 1,450,000 这样的值,它将被四舍五入为 1,000,000

这是我试过的

String kmbGenerator(number) {
    if (number > 999 && number < 99999) {
      int resulta = (number / 1000).round();
      return "$resulta,000";
    } else if (number > 99999 && number < 999999) {
      int resulta = (number / 1000).round();
      return '${resulta.toStringAsFixed(0)},000';
    } else if (number > 999999 && number < 999999999) {
      int resulta = (number / 1000000).round();
      return "$resulta,000,000";
    } else if (number > 999999999) {
      int resulta = (number / 1000000000).round();
      return "$resulta,000,000,000";
    } else {
      return number.toString();
    }
  }

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    除以一百万,四舍五入,然后乘以一百万:

    int roundMillions(int value) {
      return (value / 1e6).round() * 1000000;
    }
    
    main() {
      void test(int value) {
        print('rounded $value to ${roundMillions(value)}');
      }
      test(4843820000);
      test(1136362500);
      test(1500000);
      test(1450000);
    }
    

    输出:

    rounded 4843820000 to 4844000000
    rounded 1136362500 to 1136000000
    rounded 1500000 to 2000000
    rounded 1450000 to 1000000
    

    【讨论】:

      【解决方案2】:

      在使用 num.round() 对其进行格式化之前,例如,如果您想四舍五入到百万:

      double n = 29971800;
      double roundTo = 1000000; //million
      print((n/roundTo).round()); //prints 30
      

      你可以将它乘以百万并格式化它或者只是转换为String并添加',000,000'

      【讨论】:

        【解决方案3】:

        另一种方法是使用~/ 并乘以百万 例如(123456789~/1000000) * 1000000

        使用这个功能

        int roundMillion(int val) => (val~/1000000) * 1000000;
        

        【讨论】:

        • 这不会四舍五入,它会被截断。例如,roundMillion(500000) 将返回 0。
        猜你喜欢
        • 1970-01-01
        • 2013-11-19
        • 2023-01-12
        • 2015-12-05
        • 1970-01-01
        • 2022-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多