假设我有一个返回a的方法double,但我想确定要返回的值的点后的精度.我不知道变量的价值double.
例:
double i = 3.365737;
return i;
Run Code Online (Sandbox Code Playgroud)
我希望返回值在点之后具有3个数字的精度
含义:返回值为3.365.
另一个例子:
double i = 4644.322345;
return i;
Run Code Online (Sandbox Code Playgroud)
我希望返回值为: 4644.322
你想要的是在某个数字后截断十进制数字.您可以轻松地做到这一点与floor从函数<math.h>(或std::floor从<cmath>,如果你正在使用C++):
double TruncateNumber(double In, unsigned int Digits)
{
double f=pow(10, Digits);
return ((int)(In*f))/f;
}
Run Code Online (Sandbox Code Playgroud)
尽管如此,我认为在某些情况下,由于浮点内部的工作原理,你可能会得到一些奇怪的结果(最后一个数字是一个过/关).
另一方面,大多数时候你只是绕过double原样并在仅在流上输出时截断它,这是通过右流标志自动完成的.