[英]Unsigned long long int to long double
在C編程語言中,我很難獲得報告的長雙精度變量的准確值。
為了計算兩個無符號的long long變量的准確平均值,我覺得我需要在標准雙精度上使用long double,因為標准雙精度只能處理52個有效位,而unsigned long long是64位。
這是我遇到的問題的一個示例:
unsigned long long int x = 0x00000000FE5F06AC;
unsigned long long int y = 0x000FFFFFFFFFFFFF;
long double z = (x+y)/2.0;
printf("z = %lf", z);
這樣的代碼示例將始終為z打印0.0000,而我真的無法理解為什么會這樣。
是否存在下溢,或者在格式化時出現某種類型的錯誤?
我看到幾個錯誤:
您的第一個數字中有一個G
希望這只是打字錯誤或抄寫錯誤。
long double
的格式為%Lf
,而不是%lf
。
這是一個工作示例的鏈接: http : //ideone.com/jWRHit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.