gpt4 book ai didi

c++ - 对整数类型进行舍入,但不对小数类型进行舍入

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:20:23 27 4
gpt4 key购买 nike

在下面的函数中,我正在寻找一个表达式来替换 isIntegral<T> .

意图是当T是整数类型我们加上0.5f之前static_cast隐含地降低了值(value)(因此我们获得了一个四舍五入的值(value)),但是当T是小数类型,我们什么也不加,所以 static_cast只能降低精度。

T interpolate( T const & prev, T const & next, float interpolation )
{
float prevFloat = static_cast< float >( prev );
float nextFloat = static_cast< float >( next );

float result = prevFloat + ( (nextFloat-prevFloat) * interpolation );

return static_cast< T >( result + ( isIntegral<T> ? 0.5f : 0.0f );
}

最佳答案

使用 std::numeric_limits<T>::is_integer (它在 <limits> header 中)。

关于c++ - 对整数类型进行舍入,但不对小数类型进行舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4197143/

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