C語言中浮點數向零捨入取整的方法

2021-08-08 11:55:45 字數 415 閱讀 7544

之前沒想過這個問題,今天做題時碰到了,想了半天沒想明白,就上網開始查,結果查了一圈也沒發現什麼靠譜的答案。沒辦法,只能在角落裡慢慢硬憋出個答案了。

忽然想起來既然都是往0上靠,其實也就是正數去掉小數,負數去小數絕對值加一,於是忽然想起來c還有個unsigned可以用!欣喜若狂地試了一下,發現完美實現了向0捨入的功能!

思路就是先把double強轉成unsigned,這樣就把負數補到正數上去了,順便也去掉了小數(也就是在正數的地盤上向0取整了),然後再把unsigned重新強轉成int,這樣就又把處理好的數放回到它原來的位置上了。

題目是說是入乙個整形數x,然後輸出其向0取整的3/4x

#include#includeint threefourth(int x)

main()

C語言中的浮點數比較

浮點數分為單精度和雙精度兩種。在記憶體中的儲存方式按照ieee754標準。通常情況下,單精度佔4個位元組,雙精度佔8個位元組。可以使用sizeof驗證一下。include int main 輸出結果為4 8 x和y變數在十進位制數值上是相等的都是0.1。但是0.1用二進位制表示的時候就會丟失精度,只...

C語言中浮點數的精度問題

1.浮點數出現精度問題的原因 浮點 位元組數有效數字位 float46 double815 實際上一般選用double型別,double有15位有效數字若輸入的數字為16位則會有誤差。int main 2.怎樣才能減少誤差帶來的影響 使用巨集定義乙個eps來判斷誤差 define eps 0.000...

c語言整數轉浮點數 浮點數的秘密

我們在學習 c 語言時,通常認為浮點數和小數是等價的,並沒有嚴格區分它們的概念,這也並沒有影響到我們的學習,原因就是浮點數和小數是繫結在一起的,只有小數才使用浮點格式來儲存。其實,整數和小數可以都使用定點格式來儲存,也可以都使用浮點格式來儲存,但實際情況卻是,c 語言使用定點格式儲存整數,使用浮點格...