C#实现将输入的数自动转换为科学计数法
一朋友写了一个把输入的整型或浮点数转换为科学计数法表示的算法,写好后叫我去帮他看看有没有什么bug之类的没有考虑周全。我还没有细看就已经把我吓到了----整整写了将近三百行代码。我也没说他什么,只是回到我的电脑前自己写了一个试试。
需求:输入一个数,用科学计数法表示,要有三位有效数字,幂数部分也要求是三位,不足则补零
代码如下:
public abstract class ScienceCount
{
public static string KXJSF(double num)
{
double bef =System.Math.Abs(num);
int aft=0;
while (bef >= 10 ||(bef < 1&& bef!=0))
{
if (bef >= 10)
{
bef = bef / 10;
aft++;
}
else
{
bef = bef * 10;
aft--;
}
}
return string.Concat(num>=0?"":"-",ReturnBef(bef),"E",ReturnAft(aft));
}
/// <summary>
/// 有效数字的处理
/// </summary>
/// <param name="bef">有效数字</param>
/// <returns>三位有效数字,不足则补零</returns>
public static string ReturnBef(double bef)
{
if (bef.ToString() != null)
{
char[] arr = bef.ToString().ToCharArray();
switch (arr.Length)
{
case 1:
case 2: return string.Concat(arr[0] , "." , "00"); break;
case 3: return string.Concat(arr[0] + "." + arr[2] + "0"); break;
default: return string.Concat(arr[0] + "." + arr[2] + arr[3]); break;
}
}
else
return "000";
}
/// <summary>
/// 幂的处理
/// </summary>
/// <param name="aft">幂数</param>
/// <returns>三位幂数部分,不足则补零</returns>
public static string ReturnAft(int aft)
{
if (aft.ToString() != null)
{
string end;
char[] arr = System.Math.Abs(aft).ToString().ToCharArray();
switch (arr.Length)
{
case 1: end = "00" + arr[0]; break;
case 2: end = "0" + arr[0] + arr[1]; break;
default: end = System.Math.Abs(aft).ToString(); break;
}
return string.Concat(aft >= 0 ? "+" : "-" , end);
}
else
return "+000";
}
}
调用代码:
static void Main()
{
string num = "0";
while (num != "#")
{
num = Console.ReadLine();
if(!string.IsNullOrEmpty(num.Trim()))
Console.WriteLine(ScienceCount.KXJSF(double.Parse(num)));
}
}
代码可运行,且基本满足要求(没有考虑输入字符的情况),若有不足请各位看客慷慨指出。
C#实现将输入的数自动转换为科学计数法的更多相关文章
- PHP 大数自动转换为科学计数法
前段时间碰到一个很头疼的问题,就是大于12位的数字在PHP中,会自动转成科学计数法表 示. 比如 1234567891234 显示为 1.23456789123E+12 , 最后只能在计算出大数之后, ...
- 用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)
做过很多次导出excel了.都碰到一个问题,内容里如果包含一个比较长的数字,比如订单号“2546541656596”,excel会自动变成科学计数法... 弄过好几次都没有解决,最近又要导出excel ...
- 转:导出csv文件数字会自动变科学计数法的解决方法
导出csv文件数字会自动变科学计数法的解决方法 其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科 ...
- php 封装原生数据导出的方法(csv文件格式)和csv文件中长数字自动变成科学计数法的处理
如何解决上图长数字自动转换处理? CSV文件中长数字自动变成科学计数法处理.用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学计数法的表现形式. ...
- js前端导出Excel表格后数字自动变成科学计数法问题
一般的文件导出都是后端进行导出,最近一个项目遇到导出接口挂掉了,前端实现导出的情况. 背景是vue框架,iView组件.可以直接使用exportCsv方法进行导出. 导出时进行一下行和列的切割就可以了 ...
- 导出csv文件数字会自动变科学计数法的解决方法
其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0.解决 ...
- 导出csv xls文件数字会自动变科学计数法的解决方式
将数据导出excel文件变成科学计数法问题: 分析: 用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学技术法的表现形式. 其实这个 ...
- Excel长数字防止转换为科学计数法
网上的一个方法是,加单引号,但是不好看. 我的处理,是先加,再替换成带格式的. strTable = Formater.SimpleTable(dt, "aaa", "| ...
- PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法
方法一:前面加空格 $objActSheet->setCellValue('A1', ' '.'330602198804224688'); 方法二: $objActSheet->setCe ...
随机推荐
- IIS 500错误或无法显示此网页解决方法
不知道是不是XP版本的原故,发现越来越多的XP系统装好IIS后连默认网站都打不开,(其他系统没有注意)出现几个大字,IIS 500错误.相信碰到这个问题的人都深有体会,确实很烦人.卸了IIS重装也是不 ...
- 像 npm 一样在 Andriod 项目中引入 Gradle 依赖
一.前言 作为 Android 开发人员,有没有羡慕过 node.js 的导入三方库的方式,node.js 社区为开发者准备了一个快速可靠的依赖管理库.这样的依赖管理库,让 node.js 导入依赖库 ...
- 学习的Python教程中的一些问题
2017开始学习Python,在网上找了很多教程,最后看到了Vamei的教程,感觉很简单易懂,但是过程中难免有不太容易理解的问题,做一些随笔,加深记忆亦可让以后学习的同学少走一些弯路. 1 Pytho ...
- 对Jquery中的ajax再封装,简化操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- css百分比参照大总结
最近做PC端项目,由于要自适应到800*600,所以免不了要使用百分比的布局方式,但是一开始有点搞不清楚百分比的参照,于是页面的布局怎么调也调不好. 事后我进行了一下总结,希望能够帮到大家: 参照父元 ...
- 谦先生的程序员日志之我的hadoop大数据生涯一
从一个初级程序员到高级程序员的经历 你好!我是谦先生,我是茫茫程序猿中的一猿,平凡又执着. 刚入行的时候说实话,啥都不懂,就懂点皮毛的java,各种被虐狗的感觉.又写js又写css又写后台...慢慢被 ...
- 原生JS实现淘宝无缝轮播
<!DOCTYPE html ><html><head><meta http-equiv="Content-Type" content=& ...
- PHP 单例模式解析和实战
一.什么是单例模式? 1.含义 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 2. ...
- Hibernate逆向代码问题
问题描述 使用hibernate tools 插件生成pojo代码非常方便快捷,但是我今天使用的时候发现,在eclips安装jboss插件后,找不到Hibernate Code Generation ...
- 成为一名Java高级工程师你需要学什么
宏观上: 1.技术广度方面至少要精通多门开源技术吧,研究过struts\spring等的源码.2.项目经验方面从头到尾跟过几个大项目,头是指需求阶段,包括需求调研.尾是指上线交付之后,包括维护阶段.3 ...