C++有意义的数字

jos*_*im5 7 c++ math rounding significant-digits

如何在C++中进行涉及重要数字的数学运算?我希望这与化学和物理实验的测量数据一致.例如:65/5 = 10.我需要摆脱不需要的小数位并用0替换一些数字.

谢谢!

Rio*_*ams 7

这应该可以满足您的需求:

std::cout.precision(x); // x would be the number of significant figures to output
Run Code Online (Sandbox Code Playgroud)

  • 我会写:cout. precision(2) << 5.34343; 如果我想显示5.3? (2认同)

Rya*_*sen -3

math.h 中有很好的数学库

此外,将数字存储在浮点数、双精度数或长双精度数中将允许更精确的操作。

浮点型提供 7 位有效数字,而双精度型提供 16 位有效数字。

来源

另外,在打印时,通常人们使用 _snprintf 或 printf,您可以格式化这些双精度数,浮点数到您想要的精度,例如:

浮子精度

printf("值%8.2f", floatVariable);

这表示您需要总共 8 个字符的字段,在 8 个字符中,最后 2 个将保留小数部分。

_snprintf(buffer, sizeof(buffer), "值 %.2f", floatVariable);

上面的示例请求最小字段宽度,最后两个字符用于保存小数部分。

  • 这些是“小数点后的数字”,而不是[有效数字](https://en.wikipedia.org/wiki/Significant_figures)。对于科学家和工程师来说,两者之间存在非常重要的区别。 (6认同)