把浮点型数值用科学计数法输出
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<string>using namespace std;
struct SCINUM { // 科学计数法结构体string valid_num; //有效位int index;//指数SCINUM() {index = 0; // 10^index }
};//将string表示的浮点数转化为科学表示法的数值
//valid_cnt保留的有效位数
SCINUM str2Sci(string num, int valid_cnt) {SCINUM scinum;int dot_pos, nzero_pos; // dot_pos:小数点位置、 nzero_pos:第一个非零数值的位置//找到小数点的位置dot_pos = num.find("."); if (dot_pos == string::npos)//没有小数点,小数点就在最后一个位置dot_pos = num.size();//找到第一个非零数字的位置nzero_pos = 0;while (nzero_pos < num.size() && (num[nzero_pos] == '0' || num[nzero_pos] == '.'))nzero_pos++;//如果上面找到的都是0,那么这是数是零,可以直接返回if (nzero_pos == num.size()) {while (scinum.valid_num.size() < valid_cnt)//在后面补够有效位数scinum.valid_num.push_back('0');//补‘0’return scinum; //返回}//求出小数点需要移动的位数,即求指数的大小scinum.index = dot_pos - nzero_pos;//小数点位置-非零数值的位置if (dot_pos < nzero_pos)scinum.index++;//把有效位存储到scinum里面的valid_numfor (int i = nzero_pos; i < num.size() && scinum.valid_num.size() < valid_cnt; i++) {if (num[i] != '.')scinum.valid_num += num[i];}//补‘0’,筹够有效位数while (scinum.valid_num.size() < valid_cnt)scinum.valid_num.push_back('0');return scinum;
}
PAT题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805413520719872
int main() {string str1, str2;int cnt;cin >> cnt >> str1 >> str2;SCINUM scinum1, scinum2;scinum1 = str2Sci(str1, cnt);scinum2 = str2Sci(str2, cnt);if (scinum1.valid_num == scinum2.valid_num && scinum1.pow == scinum2.pow) {printf("YES 0.%s*10^%d\n", scinum1.valid_num.c_str(), scinum1.pow);}else {printf("NO 0.%s*10^%d 0.%s*10^%d\n", scinum1.valid_num.c_str(), scinum1.pow, scinum2.valid_num.c_str(), scinum2.pow);}return 0;}
把浮点型数值用科学计数法输出相关推荐
- 【C/C++】小数的输出 %e的用法 用科学计数法输出数据 %e输出00
小数的输出 %e的用法 %e是printf的格式控制字符,用于指定浮点类型数据使用指数形式输出 浮点类型分为整数部分和小数部分,它们由点号.分隔,例如 0.0.75.0.4.023.0.27.-937 ...
- python怎么用科学计数法输出_python 输出数字,如何不以科学计数法输出?
概述定义一个2113变量,用于记录次数,然5261后这个次数没输出一个4102数自己加1,然后处理这个数,取1653整数,并且再次归零.代码详解使用循环输出列表,利用 计数器控制输出数量,当输出到第十 ...
- python科学计数法输出_python 不以科学计数法输出的方法
python 不以科学计数法输出的方法 其实很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定 以上这篇p ...
- python科学计数法输出_python不以科学计数法输出的实例方法总结
python 不以科学计数法输出的方法 其实很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定 以上这篇p ...
- python将数值转为科学计数法展示
环境:python3.9 1. 如何将时间戳转为科学计数法? from time import time t = int(time()) #1660199861 t = '{:.9e}'.format ...
- Python不使用科学计数法输出数据的实现方法
文章目录 前言 一.背景介绍 二.例子详解 1.例1 以常规形式输出: 2.例2 以科学计数法形式输出: 总结 前言 本文主要介绍在利用Python进行科学计算的时候,怎么让计算出来的数据不以科学计数 ...
- R语言数值取消科学计数法表示
>#取消科学计数法 >options(scipen = 200) >#scipen 表示在200个数字以内都不使用科学计数法
- pandas 保存excel 数值显示科学计数法的问题
注意有些文章里把 df[字段名] = df[字段名].astype(str) 直接写成 df[字段名].astype(str) , 那是没用的. import pandas as pd f ...
- python 不以科学计数法输出
其实很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定
最新文章
- Google Map API 开发基础--01
- Shiro权限控制笔记要点
- spring异常Unsatisfied dependency expressed through constructor parameter 0
- Rails的作者DHH获奖:Winning Google/O'Reilly's Best Hacker of '05
- Ubuntu编译安装VASP
- Hive和Hadoop及RDBMS关系
- day01语法python入门_2
- 打造自己的Lnmp固若金汤系统
- spring3.1.1与commons-dbcp1.2的冲突?
- 正确姿势使用TraceView工具
- IDEA 配置 google翻译插件(Translate)
- mac 打开网页慢_苹果笔记本打开网页很慢是什么原因
- c语言设计程序计算水仙花数,C语言水仙花数算法
- 【Android UI设计与开发】4.底部菜单栏(一)Fragment介绍和简单实现
- 学习Matlab的第一个程序——用二分法求根
- MAC如何查看图片尺寸大小
- 青少年软件编程C++一级题库(31-40)
- 【环信IM集成指南】iOS端常见问题整理(1)
- 是不是顺子【C语言保姆级讲解】
- 基于python的鲜花商城