当前位置:首页 C++ > 正文

c++取小数部分

作者:野牛程序员:2023-07-01 08:14:17 C++阅读 3288

在C++中,可以使用不同的方法来提取一个浮点数的小数部分。下面是几种常见的方法:

  1. 使用数学库函数: C++的标准数学库<cmath>提供了许多有用的函数,包括取小数部分的函数fmod。以下是使用fmod函数提取小数部分的示例代码:

#include <iostream>
#include <cmath>

int main() {
    double number = 3.14159;
    double fractionalPart = fmod(number, 1.0);

    std::cout << "Fractional part: " << fractionalPart << std::endl;

    return 0;
}

输出结果:

Fractional part: 0.14159
  1. 请注意,fmod函数需要包含头文件<cmath>

  2. 使用整数类型转换: 可以将浮点数转换为整数类型,然后通过减去整数部分来获得小数部分。以下是使用整数类型转换提取小数部分的示例代码:

#include <iostream>

int main() {
    double number = 3.14159;
    int integerPart = static_cast<int>(number);
    double fractionalPart = number - integerPart;

    std::cout << "Fractional part: " << fractionalPart << std::endl;

    return 0;
}

输出结果:

Fractional part: 0.14159
  1. 请注意,这种方法可能导致精度损失,因为浮点数在内部表示上可能不是完全精确的。

  2. 使用字符串操作: 将浮点数转换为字符串,然后提取小数部分。以下是使用字符串操作提取小数部分的示例代码:

#include <iostream>
#include <string>

int main() {
    double number = 3.14159;
    std::string numberString = std::to_string(number);
    std::size_t decimalPointPosition = numberString.find('.');
    std::string fractionalPartString = numberString.substr(decimalPointPosition);

    double fractionalPart = std::stod(fractionalPartString);

    std::cout << "Fractional part: " << fractionalPart << std::endl;

    return 0;
}

输出结果:

Fractional part: 0.14159
  1. 请注意,这种方法会将浮点数转换为字符串,然后再将字符串转换回浮点数,因此也可能导致精度损失。

这些方法中,使用数学库函数fmod是最常见和推荐的方法,因为它能够正确处理浮点数的小数部分,并具有较高的精度。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击