In case someone using C++ to solve this problem but do not want to use third-party library: use FString to avoid float inaccuracy.
Code:
static float GetDecimicalResult(float Number)
{
constexpr int Accuracy = 100; //Just example, you can set accuracy as an function parameter
const int BigRoundResult = FMath::RoundToInt(Number*Accuracy);
const FString IntPart = FString::FromInt(BigRoundResult/Accuracy);
const FString DigPart = FString::FromInt(BigRoundResult>0 ? BigRoundResult%Accuracy : (-1)*BigRoundResult%Accuracy);
return UKismetStringLibrary::Conv_StringToFloat(IntPart + TEXT(".") + DigPart);
}