假设我有一个返回 double
的方法,但我想确定要返回的值的点后的精度。我不知道 double
变量的值。
例子:
double i = 3.365737;
return i;
我希望返回值的精度为点后3位
含义:返回值为3.365
。
另一个例子:
double i = 4644.322345;
return i;
我希望返回值为:4644.322
最佳答案
您想要的是截断某个数字后的十进制数字。您可以使用 floor
轻松做到这一点来自 <math.h>
的函数(如果您使用的是 C++,则来自 std::floor
的 <cmath>
):
double TruncateNumber(double In, unsigned int Digits)
{
double f=pow(10, Digits);
return ((int)(In*f))/f;
}
不过,我认为在某些情况下,由于浮点的内部工作方式,您可能会得到一些奇怪的结果(最后一位数字多/少)。
另一方面,大多数时候你只是绕过 double
原样并仅在将其输出到流时截断它,这是使用正确的流标志自动完成的。
关于c++ - 精确返回 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7373205/