如何添加科学和浮点数?我有类似
的东西 var1 0.99999899 var2 3.5008552e-05 sum 3.5008552e-05
但我不明白为什么首先将var2显示为科学而我在第一时间宣布
double var1, var2;
所以,实际上他们的总和只是var2 ......
感谢
一
答案 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)