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; 有人知道吗 关于finally中异常丢失的想法 请问哪位~~有java核心技术电子版的书 一个关于多态的问题!请指教^^ 关于数据库的问题 特定的字符串的查找,比如在一段字符串中查找for后面的判断语句while,do while, else if,if 后面的判定语句 如何实现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