【发布时间】:2014-07-26 17:16:35
【问题描述】:
为什么当我将一个双精度值的数据存储在一个字符数组中时,如果我从一个字符数组中获取数据到另一个双精度值,它会返回一个浮点值?
在这个:
double vals = 3.141592654;
char xvals[sizeof(vals)];
memcpy(&xvals, &vals, sizeof(xvals));
double y;
memcpy(&y, &xvals, sizeof(xvals));
std::cout<<y<<"\n";
输出:3.14159
【问题讨论】:
-
double vals = 3.141592654; std::cout<<vals <<"\n";打印什么? -
你确定它返回一个
float吗? ISTM 它只是为了输出而四舍五入。 -
omg yesss x3 谢谢,我得到了下面的答案,但我认为这将是一个已知的小数位数......那么如果我想从用户自定义值返回一个双精度值怎么办?结果中的小数位数未知。例如,如果有 20 位小数,我如何获得小数位数然后使用 std::