解决 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


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

相关文章
|
2月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
2月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
36 2
|
2月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
2月前
|
存储 数据挖掘 C语言
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
|
2月前
|
存储 安全 数据处理
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
|
2月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
32 0
|
3月前
|
设计模式 监控 Go
开发与运维C++问题之C++部分原有的数据发送能力如何解决
开发与运维C++问题之C++部分原有的数据发送能力如何解决
23 1
|
2月前
|
存储 算法 C++
【C/C++】C/C++ KTV点歌系统设计与实现(源码+数据+报告)【独一无二】
【C/C++】C/C++ KTV点歌系统设计与实现(源码+数据+报告)【独一无二】
|
15天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
60 30
|
4天前
|
并行计算 Unix Linux
超级好用的C++实用库之线程基类
超级好用的C++实用库之线程基类
12 4