首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++精度(双精度)

C++精度(双精度)
EN

Stack Overflow用户
提问于 2016-06-10 01:08:14
回答 1查看 120关注 0票数 1

我有像这样的东西

代码语言:javascript
复制
double d1=4.0;
double d2=8.0;

我正在尝试使用cout打印这些双精度值的总和。是否可以在不设置精度的情况下以精确的精度打印总和?

如果值为

代码语言:javascript
复制
double d1=4.23;
double d2=4.0;

总和应打印8.23,不带任何额外的零。

EN

回答 1

Stack Overflow用户

发布于 2016-06-10 01:24:33

本机浮点值不能以这种方式工作。

一旦你设置了一个double

代码语言:javascript
复制
double d1=4.23;

那么d设置的实际值大约是4.23000000000004263256

这在一开始就发生了。不要通过Go。不要收200美元。这已经太晚了,甚至在你计算和之前,因为4.23在以2为基数的浮点表示中不是一个可表示的数字。

实现精确非整数数学运算的唯一方法是使用专门为此目的而设计的库,例如GMPmpq_t rational numbers。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37732247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档