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

Jus*_*bie -7 c++

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

 var1 0.99999899 var2  3.5008552e-05 sum  3.5008552e-05
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么在第一个地方var2在我宣布的第一个地方显示为科学

double var1, var2; 
Run Code Online (Sandbox Code Playgroud)

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

谢谢

一个

Lig*_*ica 7

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

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

你的显示机制 - std::cout? - 正在选择输出值的最佳方式.您可以覆盖这与IO操纵,例如std::fixed,虽然这是相当繁琐,有时得到它,你只是怎么想的那样,由于库的限制.

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