繁体   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