簡體   English   中英

無符號long long int到long double

[英]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,而我真的無法理解為什么會這樣。

是否存在下溢,或者在格式化時出現某種類型的錯誤?

我看到幾個錯誤:

  1. 您的第一個數字中有一個G 希望這只是打字錯誤或抄寫錯誤。

  2. long double的格式為%Lf ,而不是%lf

這是一個工作示例的鏈接: http : //ideone.com/jWRHit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM