我想從負雙的絕對值 - 我認爲abs
函數與java中一樣易於使用 - 但不是!如何從雙C語言中獲得絕對值
看來,abs
- 函數返回一個int,因爲我有值3.8951和輸出爲3.000000
double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
我怎樣才能解決這個問題呢?那就是 - 我想要一個double
的絕對值。
我想從負雙的絕對值 - 我認爲abs
函數與java中一樣易於使用 - 但不是!如何從雙C語言中獲得絕對值
看來,abs
- 函數返回一個int,因爲我有值3.8951和輸出爲3.000000
double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
我怎樣才能解決這個問題呢?那就是 - 我想要一個double
的絕對值。
使用fabs()
(在math.h中)來獲得絕對值爲double
:不是abs
double d1 = fabs(-3.8951);
使用fabs
找到double
(或float
)絕對值數據類型。包含<math.h>
標題爲fabs
函數。
double d1 = fabs(-3.8951);
值得一提的是Java可以重載方法如abs
,使之與一個整數或雙工作。在C中,重載不存在,所以你需要不同的函數來處理整數與double。
你試過'晶圓廠(-3.8951)'? 'man abs'表示「計算一個整數的絕對值」,'fabs(3)'在「另請參見」中被交叉引用。永遠不要假設事物在不同的語言中以相同的方式工作。特別是因爲Java有類並且可以重載方法,但是C沒有。 – lurker
@mbratch - 謝謝!!!!!!!!!!!!!!!我將在未來考慮這個問題 – user3155478
abs僅針對C中的整數實現。這就是爲什麼答案都建議您使用晶圓廠,這是浮點等價物。 –