黑马程序员技术交流社区

标题: 问:怎么限制运算完后得到的结果的小数尾数 [打印本页]

作者: 邵震    时间: 2013-3-28 09:04
标题: 问:怎么限制运算完后得到的结果的小数尾数
本帖最后由 qwe8234118 于 2013-3-28 16:28 编辑
  1.         public static float pingjun(int [] shuzu)//这个函数:pingjun,是用来求数组中元素的和。
  2.         {
  3.                 float z=shuzu[0];
  4.                 for (int x=1;x<shuzu.length ;x++ )
  5.                 {
  6.                                 z+=shuzu[x];
  7.                 }
  8.                 z=z/(shuzu.length+1);
  9.                 return z;
  10.         }
复制代码
做了一个函数 能算出数组中元素的平均值
数组为
  1. int [] shuzu = new int [] {3,1,4,2,7,5};
复制代码
  1.                 float x = pingjun(shuzu);        
  2.                 System.out.println("数组中元素的平均值是:"+x);
复制代码
用double结果太长,改用float结果也有小数点后六位,要求进行四舍五入后只保留任意位数。
即1.23456789
等于1.235
不是单纯的把后几位去掉,求解
作者: 丁一    时间: 2013-3-28 10:54
格式化输出
首先导入两个包
import java.math.BigDecimal;
import java.text.DecimalFormat;

System.out.println(new DecimalFormat(".0000").format(double));


DecimalFormat 确定小数位数   format  要格式化的 数据

作者: 刘胜寒    时间: 2013-3-28 11:27
可以用printf();的java 有些东西是从C语言那个地方拿过来的,效果和Format一样的。printf("%.xf",f); x 保留几位小,f要保留的数
作者: 芦子骐    时间: 2013-3-28 13:56
/*
        将float类型的数转换成Int类型的整数,然后对各位进行判断,做四舍五入操作
*/

// 主函数
class Tes       
{
        public static void main(String[] args)
        {
                float f = 3.1462f;
                T(f);
        }

        // 转换方法 传入一个float类型的变量 f
        public static void T(float f)
        {
                // 如果取后两位,那么将f * 1000 就等于 int 类型的 3146
                int i = (int)(f*1000);
                // 然后 i % 10 取最后一位个位数的值
                System.out.println(i%10);

                // 如果大于五,i加10,再将 i 减去个位数,转换回float类型
                if(i%10>=5)
                {
                        i+=10;
                        f = (i - i%10)/1000f;
                }
                //小于五,不做操作,直接减去个位,再转换回float类型
                else
                {
                        f = (i - i%10)/1000f;
                }
                // 输出f   
                System.out.println(f);

                // 结果为 3.15
        }
}

java中应该有这一类的函数可以调用,但是小的不才,学的不深, 只能先自己写一个这样的方法了,不过还是建议看看JDK中有没有此类的方法,嘿嘿……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2