undok 2024-02-23 15:15 采纳率: 100%
浏览 11
已结题

C++浮点数转整数问题

题目描述
试编一程序,输入一个纯小数,把它变成整数后输出。
此整数为这个纯小数乘以若干个10得出的最小的数
输入
一个纯小数。
输出
变成的整数
样例输入
0.125
样例输出
125

我的代码是这样的:

#include <iostream>
#include <string>
#include <cmath>

int main() {
    double decimal;
    std::cin >> decimal;

    std::string decimal_str = std::to_string(decimal);
    size_t first_non_zero = decimal_str.find_first_not_of('0', decimal_str.find('.') + 1);
    if (first_non_zero == std::string::npos) {
        std::cout << "0" << std::endl;
        return 0;
    }

    int result = static_cast<int>(decimal * std::pow(10, decimal_str.length() - first_non_zero - 2));
    std::cout << "" << result << std::endl;

    return 0;
}

我的输入值为0.125,输出1250而不是125……
输入0.7,输出7000而不是7……

初始思路:
先将小数转换为字符串,然后找到小数点后的第一位非零数字的位置,最后根据这个位置计算需要乘以的10的幂次方。
解析:
1.将小数转换为字符串
2.找到小数点后的第一位非零数字的位置
3.根据位置计算需要乘以的10的幂次方
4.返回结果

附带:

本人编译器版本:Embarcadero Dev-C++ 6.3

  • 写回答

4条回答 默认 最新

  • 桂圆肉肉 2024-02-28 09:19
    关注
    
    #include <iostream>
    #include <string>
    #include <cmath>
    
    int main() {
        std::string input;
        std::cout << "请输入一个纯小数: ";
        std::cin >> input;
    
        // 检查输入是否包含小数点
        size_t dot_pos = input.find('.');
        if (dot_pos == std::string::npos) {
            std::cout << "输入不是一个纯小数。" << std::endl;
            return 1;
        }
    
        // 提取小数点后的数字
        std::string decimal_part = input.substr(dot_pos + 1);
    
        // 将字符串转换为整数
        int integer_part = std::stoi(decimal_part);
    
        // 输出结果
        std::cout << "变成的整数: " << integer_part << std::endl;
    
        return 0;
    }
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 专家已采纳回答 2月28日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
  • ¥15 ADS时域 连续相位观察方法
  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused