解决 c++ 字符转转浮点型数据且保留所有小数

简介: 解决 c++ 字符转转浮点型数据且保留所有小数

  最近在处理字符串转数字时,控制台输出的转换结果总是出现自动四舍五入的情况;期间尝试了各种转换函数但转换结果仍然是经过四舍五入的;实际上并不是使用的函数问题,而是控制台显示的问题,实际转换结果是正确的,如果仅是使用转换结果,直接用即可!!!


1、输入数据


9891749442944f7591806a7927809263.png


2、输出结果


612e4533498245c09b70d131583cbd29.png


3、代码实现


 由于我读取的是 .tfw 中的数据,所以在代码实现上先对数据进行读取,然后做字符串转浮点型数据;

#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <vector>
#include <stdio.h>
#include <cmath>
#include <opencv2\opencv.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include "opencv2\imgproc\types_c.h"
using namespace std;
using namespace cv;
int main() 
{
  ifstream ifs;             //创建流对象
  ifs.open(".\\wgs.tfw", ios::in);    //打开文件
  if (!ifs.is_open())           //判断文件是否打开
  {
    cout << "打开文件失败!!!";
    return 0;
  }
  //读取正确匹配特征点
  vector<string> item;        //用于存放文件中的一行数据
  string temp;            //把文件中的一行数据作为字符串放入容器中
  while (getline(ifs, temp))          //利用getline()读取每一行,并放入到 item 中
  {
    item.push_back(temp);
  }
  vector<double> res;
    //字符串转浮点型数据,使用 atof() 函数即可
  for (int i = 0; i < item.size(); i++)
  {
    //数据类型转换,将string类型转换成float,如果字符串不是有数字组成,q则字符被转化为 0
    res.emplace_back(atof(item[i].c_str()));
  }
  for (double num : res)
    cout << num << endl;
  system("pause");
  return 0;
}



4、字符串转浮点型数据实际结果


a6b063ef952945ffa80cd4a3caa3bd99.png


跑完代码后通过观察内存中的变量可知:字符串转浮点型数据小数点后的所有数据都是被保留的!!!

相关文章
|
14天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
42 12
|
5天前
|
存储 监控 算法
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
13 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
|
2月前
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
47 5
|
7月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
140 1
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
7月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
86 2
|
7月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
7月前
|
存储 安全 数据处理
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
157 1
|
7月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
72 0
|
14天前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
17天前
|
编译器 C语言 C++
类和对象的简述(c++篇)
类和对象的简述(c++篇)