float后加f为什么就能转换成double类型

float后加f为什么就能转换成double类型


蝴蝶不菲
浏览 1206回答 3
3回答

至尊宝的传说

可以这样来定义一个double型的double d = 0.1;然而,这样不可以通过float f = 0.1;来定义一个float型的,这是因为默认的小数是double型的要定义一个float型的,有两种方式float f = 0.1f;或者 float f = (float)0.1;相互之间的转化:举个例子:假设有void f1(double d)void f(float f)这两个函数的定义现在用上面定义的变量来调用一下就知道了f(d);是有编译错误的,这说明java中double不能自动转化为float,改为f((float) d);就行了但是f1(f),确是可以是,这是因为java可以自动的转化float至double来进行运算。至于为什么?java在运算时会自动的提升变量的精度来进行运算,double比float精度更高,所以可以自动的从float转化至double再进行运算。

缥缈止盈

是转换成Float类型,而不是double。后面不加F的float a = 10.1;这种,浮点数10.1自动认为是double类型,但是定义的float,所以会有类型转换。

眼眸繁星

12345678910111213141516171819202122232425以下代码,测试通过,你试试#include&nbsp;<iostream>#include&nbsp;<iomanip>#include&nbsp;<cmath>using&nbsp;namespace&nbsp;std;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n;&nbsp;&nbsp;&nbsp;&nbsp;cin>>n;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;dis=0,a[100],b[100],max=0;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i<n;i++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin>>a[i]>>b[i];&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;int&nbsp;j=0;j<n-1;j++&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;int&nbsp;k=j+1;k<n;k++&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dis=sqrt(&nbsp;(a[k]-a[j])*(a[k]-a[j])&nbsp;+&nbsp;(b[k]-b[j])*(b[k]-b[j])&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;dis&nbsp;>&nbsp;max&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max=dis&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;cout<<fixed<<setprecision(4)<<max<<endl;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP