怎样求出22/7小数点后的100位数?急需...

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-21 10:10:38的汇总数据:
    注册日期:2008-2-28
    上次登录:2008-6-21
    发帖数:1                  发帖分:20                 
    结贴数:0                  结贴分:0                  
    结贴率:0.00 %        结分率:0.00 %        
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    可以用 BigDecimal 你去看看。里面有除法
      

  3.   

      public static void main(String[] args) {
        BigDecimal a = new BigDecimal(22);
        a = a.divide(new BigDecimal(7), 100,BigDecimal.ROUND_HALF_UP);
        System.out.println(a);
      }输出
    3.1428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571429
      

  4.   

    BigDecimal a = new BigDecimal(22);
    BigDecimal b = new BigDecimal(7);
    System.out.println(a.divide(b,100,RoundingMode.UP));
      

  5.   

    zan 5#确实是好的法子...JAVA 中主要是方法太多 ..多用 多看 自然会明白
      

  6.   

    不用计算啦,像 2 楼所说的可以采用循环节分母为 7 的循环节一直是 1、4、2、8、5、7 这几个数转来转去的。public class Test {    
        public static void main(String[] args) {
            String repetend = "142857";
            int n = 100;
            char c = repetend.charAt((n - 1) % repetend.length());
            System.out.println(c);
        }
    }
      

  7.   

    public class Test {
        public static void main(String[] args) {
            System.out.println(div7(22, 100));  // 22/7 的第 100 位
            System.out.println(div7(33, 100));  // 33/7 的第 100 位
        }    public static int div7(int numerator, int digit) {          
            int mod = numerator % 7;
            if(mod == 0) {
                return 0;
            }
            String repetend = "142857";
            int[] shift = {0, 2, 1, 4, 5, 3};
            char c = repetend.charAt((digit + shift[mod - 1] - 1) % 6);
            return c - '0';
        }
    }
      

  8.   

    可以用unix/linux上的bc来计算
    echo -e "scale=100\n22/7" | bc -l