如何用c語言編寫乙個程式,計算float x 0 1與0 1的差值

時間 2021-06-07 00:06:02

1樓:HOOCCOOH

首先假設題主需要這個差值的十進位制表示。

根據 IEEE754 ,浮點使用的二進位制表示法必定在十進位制下有限位數,直接用 printf 指定位數列印即可。

唯一需要注意的是到底需要打多少位才夠。我們知道浮點在計算機中表示為 ,其中 為尾數字數, 為浮點指數。又由於 0)" eeimg="1"/>在十進位制下恰好有 位小數,故可以知道,對於乙個浮點數,小數字數最多只有 位(注意指數的符號,負值越大,小數越多)。

#include

#include

#include

intmain

(void

)於是就列印出來浮點表示法中 0.1 的精確值了,這裡比較方便,去掉第乙個 1 就是差值,此處略去不表。如果考慮其他數值,捨入也可能比實際值小(比如 0.

7),這時就需要手寫個高精度減法求差了。

補充:對於任意十進位制小數的泛化版本:

#include

#include

#include

#include

#include

#include

char

*dec_float_delta

(char

const

*dec)if

(is_neg

)buf[0

]='-';

return

buf;

}int

main

(void);

for(

size_ti=

0;i

tests

/sizeof

*tests;++

i)return0;

}執行輸出:

0.1 +0.000000001490116119384765625

0.7 -0.000000011920928955078125

0.114514 +0.000000000713825225830078125

0.5 +0.000000000000000000000000

2樓:Zcxsythenew

#include

intmain

(void

)else

}// 現在,需要比較 b 的值,以及 0.1 乘 2 的 a 次方的值

// 也就是比較 10*b 的值,以及 2 的 a 次方的值// 現在你知道怎麼做了嗎?

// --- Answer ---b*=

10;i=

a;while(i

)// 現在 b = 0.1f * 10 * 2^a// 且 temp = 0.1真 * 10 * 2^a = 2^a// 所以 (0.

1f - 0.1真) * 10 * 2^a = b - temp

// 所以 0.1f - 0.1真 = (b - temp) / (10 * 2^a)

printf

("(b - temp) = %lld

\na = %lld\n"

,b-temp,a

);// 把 (b - temp) 和 a 的值求出來之後,// 填入上面的分式即可。

// 當然,你也可以適當改變 printf 的內容// 使它直接輸出你想要的式子。

return0;}

3樓:Hawaii

那要看你想要的是乙個大致結果,還是精確結果了

大致結果直接用x-0.1就能得到,因為常量0.1是double型別,兩者的差就是double型別和float型別之間的精度差距

精確結果,先按IEEE 754標準還原出尾數M和階碼E,再按迴圈除2方式使用高精度十進位制除法將M轉換為10進製數,最後使用高精度十進位制減法求出結果與0.1的差值。

4樓:山楂山楂片

這可能是double的:

0.不過我也不太清楚怎麼用C語言寫出來,剛才那個是Python列印0.1,然後去掉開頭的1的結果。

用c語言編寫乙個計算20億以內各位之和是4的素數,怎樣編寫更快速?

杜紫童 各位之和是4的數字,只有形如以下幾種的數可以滿足 考慮到需要的是素數,並且大於2的素數都是奇數,所以可以把其中的偶數都排除掉,現在只剩下5種 1331 121211 1111 遍歷,不斷向各個位之間插入0,即可產生一系列的數,然後判斷它們是否是素數。舉個例子,對於121 1211021 10...

如何用C語言畫乙個蘑菇?

冷月i include include int main printf printf n printf printf n printf printf n printf printf n printf printf n printf printf n printf return 0 小時候金字塔就是這...

僅學過三個月的新手如何用c語言編寫乙個挑夾棋程式?

第一步,學一手Python 第二步,用Python把榜上大佬的走法全都爬下來第三步,把爬下來的走法翻譯成c語言 利益相關 Thank you ALL 洩藥 其實沒人麼,不請自來 這個問題其實非常簡單,它大概分為幾個部分 一 與榜上dalao搞好py關係,熟知高娓瀧,木鄰姐,陳香妃,lution,曾嘖...