gpt4 book ai didi

c++ - 精确返回 double

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:28 25 4
gpt4 key购买 nike

假设我有一个返回 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com