c++中关于double的一点输出问题 怎样把double输出的值为一般形式,且要最多保存小数点

2025-03-19 14:19:04
推荐回答(2个)
回答1:

使用double,你不可能输出提问中那个a的小数点后70位的准确数值。
double叫“双精度浮点数”,这里说精度,不是因为数值精确,而是因为“精度有限”,double的数字精度,是15~16位,超出部分无法精确表达,甚至差异很大。

double a=45236896*145236544+1/695325145785263527586932
整数部分已经超出精度范围了,小数部分几乎是没有意义的,别说小数点后70位了。

在16位精度以内,要显示double的数值表达而不是指数表达很简单,各种格式化函数都可以,主要在于使用指定的格式:
printf("%6.9lf",a);

回答2:

用format函数