8/(3-8/3)手工算等于24,JAVA程序中算却等于8,怎样使它等于24? 你把数据类型声明为:DOUBLE或者FLOAT 就可以了啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 整数运算中/是整除,必须先强制转换为float:(float)8/((float)3-(float)8/(float)3) 8/(3-8/3)你这里碰到了小数的运算,而java运算式中,直接数字运算比如8/3是等于2的,即是默认为int类型:int(8/3)所以你这样肯定不行涉及到小数的运算,必须将数值定义为float或double类型的再运算才行比如: float a = 8f; float b = 3f; float c = a/(b-a/b); System.out.println(c);这样,得到的c值就是近似24的值24.000006。为什么会这样?那是因为java中float类型只有6~7位精度 8.0/(3-8.0/3) 这样就可以了,因为java和C++里面 8/3 为整除,得 2 缺省的是int型,所以8/3=2; 求助execl表格的分割问题 java类定义在一个package里面,为什么编译不通过那? 麻烦了。 老问题,但还是得问大家! 问一下在堆区中对象实例的方法被调用的机制,还是被放在栈中处理的么? 如何本地化 关于“TableHeader.cellBorder“ 各位大虾,我刚刚接触java,遇到这样的问题 有关电子邮箱的问题 java日期转换 请教用过textpad的大哥们!(当然关心小弟的都可进!!) 关于方法覆盖时异常的抛出问题?
(float)8/((float)3-(float)8/(float)3)
你这里碰到了小数的运算,而java运算式中,直接数字运算比如
8/3是等于2的,即是默认为int类型:int(8/3)
所以你这样肯定不行
涉及到小数的运算,必须将数值定义为float或double类型的再运算才行
比如:
float a = 8f;
float b = 3f;
float c = a/(b-a/b);
System.out.println(c);
这样,得到的c值就是近似24的值24.000006。为什么会这样?那是因为java中float类型只有6~7位精度
这样就可以了,因为java和C++里面 8/3 为整除,得 2