3 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
可以這樣來(lái)定義一個(gè)double型的
double d = 0.1;
然而,這樣不可以通過(guò)
float f = 0.1;來(lái)定義一個(gè)float型的,這是因?yàn)槟J(rèn)的小數(shù)是double型的
要定義一個(gè)float型的,有兩種方式
float f = 0.1f;
或者 float f = (float)0.1;
相互之間的轉(zhuǎn)化:
舉個(gè)例子:
假設(shè)有void f1(double d)
void f(float f)
這兩個(gè)函數(shù)的定義
現(xiàn)在用上面定義的變量來(lái)調(diào)用一下就知道了
f(d);是有編譯錯(cuò)誤的,這說(shuō)明java中double不能自動(dòng)轉(zhuǎn)化為float,改為f((float) d);就行了
但是f1(f),確是可以是,這是因?yàn)閖ava可以自動(dòng)的轉(zhuǎn)化float至double來(lái)進(jìn)行運(yùn)算。
至于為什么?
java在運(yùn)算時(shí)會(huì)自動(dòng)的提升變量的精度來(lái)進(jìn)行運(yùn)算,double比f(wàn)loat精度更高,所以可以自動(dòng)的從float轉(zhuǎn)化至double再進(jìn)行運(yùn)算。

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
是轉(zhuǎn)換成Float類型,而不是double。
后面不加F的float a = 10.1;這種,浮點(diǎn)數(shù)10.1自動(dòng)認(rèn)為是double類型,但是定義的float,所以會(huì)有類型轉(zhuǎn)換。

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
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 | 以下代碼,測(cè)試通過(guò),你試試 #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 關(guān)注
- 1234 瀏覽
添加回答
舉報(bào)