【问题标题】:Round values in javajava中的舍入值
【发布时间】:2013-03-26 03:42:12
【问题描述】:

我将如何舍入

  1. 1

  2. 1.5

【问题讨论】:

    标签: java rounding


    【解决方案1】:

    怎么样

    double rounded = Math.ceil(number * 2) / 2;
    

    由于Math.ceil() 已经返回一个双精度数,这里不需要除以2.0d。只要您处于可以表示为双精度而不会丢失精度的整数范围内,这将正常工作,但请注意您是否超出该范围。

    【讨论】:

      【解决方案2】:
      public double foo(double x){
        int res = Math.round(x);
        if(res>x) // x > .5
         return res -0.5;
        else 
         return res + 0.5;
      }
      

      我还没有编译,但这是伪代码,应该可以工作

      【讨论】:

        【解决方案3】:

        乘以 2,使用 Math.ceil(),然后将该结果除以 2。

        【讨论】:

        • 我看到 Andrew Mao 刚刚打败了我。
        • 正要问你是抄我的答案还是你没看:)
        • 我在输入我的答案时没有看到您的答案。我认为页面尚未刷新。
        【解决方案4】:
            public double round(double num)
            {
                double rounded = (int) (num + 0.4999f);
                if(num > rounded)
                    return rounded + 0.5;
                else
                    return rounded;
            }
        

        【讨论】:

          【解决方案5】:

          你可以使用

          double numberGrade = 2.5;
          Math.ceil(numberGrade);
          

          【讨论】:

          • 我建议你在你的答案被否决之前重新检查你发布的内容。
          • 哎呀对不起,它应该是双倍或浮动
          • 但这不会满足问题的要求。原始海报需要四舍五入到下半部分。你的四舍五入到下一个整数。
          • 嗯然后我想像@smk这样的简单分支就可以了;
          猜你喜欢
          • 1970-01-01
          • 2012-04-23
          • 1970-01-01
          • 2015-12-11
          • 2015-08-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多