1樓:陽光的雷咩咩
用math下面的函式
:double d1 = 1.1d;
int i1f = (int)math.floor(d1);//1int i1c = (int)math.ceiling(d1);//2
int i1r = (int)math.round(d1);//1double d9 = 1.9d;
int i9f = (int)math.floor(d9);//1int i9c = (int)math.ceiling(d9);//2
int i9r = (int)math.round(d9);//2
c# 中計算 double 型別時出錯,,0.1*0.1 為什麼不是等於0.01
2樓:匿名使用者
在我這裡除錯怎麼沒問題。。。
也是c#
double a = 0.1;
double i = a * a;
或者i = 0.1 * 0.1;結果都是0.01
3樓:
浮點比較式不能用等於判斷的。。。計算機處理的時候是會出現偏差的。。。一般都是設定乙個偏差值比較。。。
計算機的本身的限制沒有辦法。。。如果是確定了精度的話可以取整比較,不過是會有點偏差的
假設你的數值精度只有小數點後3位,那就直接四捨五入到小點後三位,然後作為字串比較或者乘1000取整比較
4樓:線玉蘭秋汝
兩個不同資料型別做運算就會出現這種問題,有些時候,即使相同資料型別也會
主要就是計算機各資料型別精度問題
所以,如果你想要25
*0.0001
=0.00025
就把2個數字全都付給double型變數
doublet1=
25;doublet2=
0.0001;
doublem=
t1*t2;m就是你想要的
C語言中double和int型的資料之間可相互賦值
可以。如 double a 1.2 int b b a b 1 取整了 int a 1 double b b a b 1.00000 1 double 雙精度浮點型 是計算機使用的一種資料型別。比起單精度浮點數 float double 雙精度浮點數 使用 64 位 8位元組 來儲存乙個浮點數。2 ...
c語言裡,double和int在開頭都是定義嗎?有啥區別
double表示的是浮點數,範圍大,但值是近似值。int只能表示整型。定義的話,最原始的c要求 所有變數都要在 塊開頭定義不過後來放寬了 現在幾乎所有的編譯器 都是可以在函式中間定義變數了。c語言double和int有什麼區別,各個表示範圍是多少,double可以表示負數嗎 區別 double雙精度...
c語言中int型與double型能進行換算加減乘除嗎
能進bai行,不會錯,系統實際會把du參加運zhi算的所有變數轉換為double後進dao行計算專,只要表示式屬裡面有乙個float或者double的量,例如 int i 1 float x 5,y y x i 執行的時候系統會把x和i都轉換為double進行計算,最後的結果再儲存為y的double...