3 回答
TA贡献1789条经验 获得超10个赞
可以这样来定义一个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再进行运算。
TA贡献2041条经验 获得超4个赞
是转换成Float类型,而不是double。
后面不加F的float a = 10.1;这种,浮点数10.1自动认为是double类型,但是定义的float,所以会有类型转换。
TA贡献1873条经验 获得超9个赞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 以下代码,测试通过,你试试 #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main() { int n; cin>>n; double dis=0,a[100],b[100],max=0; for(int i=0;i<n;i++) { cin>>a[i]>>b[i]; }
for( int j=0;j<n-1;j++ ) for( int k=j+1;k<n;k++ ) { dis=sqrt( (a[k]-a[j])*(a[k]-a[j]) + (b[k]-b[j])*(b[k]-b[j]) ); if ( dis > max ) max=dis ; } cout<<fixed<<setprecision(4)<<max<<endl; return 0; } |
- 3 回答
- 0 关注
- 1205 浏览
添加回答
举报