为什么我的双重显示为科学?

时间:2014-11-19 14:57:26

标签: c++

如何添加科学和浮点数?我有类似

的东西
 var1 0.99999899 var2  3.5008552e-05 sum  3.5008552e-05

但我不明白为什么首先将var2显示为科学而我在第一时间宣布

double var1, var2; 

所以,实际上他们的总和只是var2 ......

感谢

2 个答案:

答案 0 :(得分:7)

显示浮点值的方式取决于显示浮点值的机制。它不是值本身的属性,也不以任何方式存储在变量中:

  

数字是数字是一个数字。你所谓的“科学”不是一类数字。它是一类数字表示。与“十二”,“十二”,“十二”,“十二”和“IIIIIIIIIIII”相同的方式都代表相同的数字。只有在您决定以某种特定方式表示数字时(即输出数字时),才会出现这种“科学”的东西。计算不会“将数字转化为科学”,就像说“2 * 6是12”不会将数字转换成英文单词一样。变量始终存储数字而不是表示。 - R. Martinho Fernandes

您的展示机制 - std::cout? - 正在选择输出值的最佳方式。由于库限制,您可以使用std::fixed等IO操纵器来覆盖此操作,但it's pretty fiddly sometimes to get it just how you want it

答案 1 :(得分:-2)

如果你有<stdio.h>可用,那么你可以使用int printf ( const char * format, ... );格式说明符看起来像这样:printf("%.5f", your_double)其中5是小数点后你想要的位数,默认值为6。 (printf docs