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 關注
- 1235 瀏覽
添加回答
舉報