knrt.net
当前位置:首页 >> int 相除等于FloAt >>

int 相除等于FloAt

一楼的方法是正确的,只要是分子分母的一项提升为float型,那么编译系统在运算前会二目提升到最高的float型的。 二楼的不正确,因为是把整形运算结果转变成float型,而此时两整形相除仍然得到的整形,再转换成float型会有精度损失的。

被这个类似的问题困扰过:同意楼上 iamdebugman的说法,强制转化被除数与除数,即 float t = (float) (k1) / (float)(k2); 另外一位同学的 int k1=5; int k2=2; float k; k=(float)k1/k2; 结果应该是2

两个int变量相除,结果一定是int类型的,m=a/b; m的值是0 如果你想得到float结果,也可以加说明符如下: m=(float)a/b; 或 m=a*1.0/b; 这样得到的结果是0.5

用强制转换,比如 double c = (double)a/b; 这样把a强制转换为double来计算,double/int 得到的就是double; 当然float同理.

用你给出的例子,写了段代码: #include#include int main(){int a,b;float c;a=2;b=3;c=(float)a/b; //这里要强制转换printf("%.1f%%\n",c*100);//%.1f中的1表示小数位数,可以自己定义}

相除的结果系统认定是双精度的,而且是按照计算机的二进制。所以会出现你这样的结果。 如果你强制转换结果,那么当1.9/0.3的时候就出错了。所以最好的是保留一位小数来解决(与除数和被除数的格式保持一致): 保留一位 Math.round(c/d*10))/10;...

您好,1、整数的除法: 0做除数抛运行时异常;两整数商会做取整运算,Float或Double与一个整数做除法运算,则商位Float或者Double类型,例如: System.out.println("------------Int相关除法----------"); System.out.println("12/10="+12/10); ...

在JAVA中有三个特殊的浮点类型的数值:正无穷大、负无穷大、NaN 这三种数值用来表示出错或者溢出的情况。 举个例子,用一个正数去除0得到的是正无穷大,而计算负数的平方根会得到NaN

可以用强制转化。 设float M; M=(float)j/(float)N; 这样得到的就是float类型了。

一般在进行数学计算的时候,需要将一些数据变为浮点型,例如: public class Hello{ public static void main(String args[]){; System.out.println(9 /...

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com