将Excel中读取的科学计数法表示的Double数据转换为对应的字符串
已在SegmentFault提问,目前没有答案,自行实现如下:
- private static String getRealNumOfScientificNotation(String doubleStr) {
- int indexOfE = doubleStr.indexOf('E');
- int indexOfPoint = doubleStr.indexOf('.');
- // 整数部分
- BigInteger zs = new BigInteger(doubleStr.substring(0, indexOfPoint));
- // 小数部分
- BigInteger xs = new BigInteger(doubleStr.substring(indexOfPoint
- + BigInteger.ONE.intValue(), indexOfE));
- // 指数
- int pow = Integer.valueOf(doubleStr.substring(indexOfE
- + BigInteger.ONE.intValue()));
- StringBuffer buffer = new StringBuffer();
- // e.g. 1.23E-5
- if (pow < 0) {
- for (int i = 0; i < -pow; i++) {
- buffer.append(0);
- }
- buffer.insert(BigInteger.ONE.intValue(), ".");
- buffer.append(zs.toString()).append(xs.toString());
- doubleStr = buffer.toString();
- } else {
- int xsLen = xs.toByteArray().length;
- int needFill0 = pow - xsLen;
- if (needFill0 < 0) {
- // e.g. 1.234E2
- buffer.append(xs);
- buffer.insert(pow, ".");
- buffer.insert(0, zs);
- doubleStr = buffer.toString();
- } else {
- // e.g. 1.234E6 or 1.234E3
- for (int i = 0; i < needFill0; i++) {
- buffer.append(0);
- }
- buffer.insert(0, xs);
- buffer.insert(0, zs);
- doubleStr = buffer.toString();
- }
- }
- return doubleStr;
- }
将Excel中读取的科学计数法表示的Double数据转换为对应的字符串的更多相关文章
- Java中的浮点数-科学计数法-加减乘除
上次,提到"元转分"这个浮点数问题,boss倾向于手动把1.23元这种格式,转换成123分. 但实际上,浮点数很容易遇到精度问题. 比如,System.out.prin ...
- 解决HTML导出Excel表数字变成科学计数法
- js 中导出excel 较长数字串会变成科学计数法 在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串转 ...
- Java中怎么把科学计数法显示出全部数字
如果想去除科学计数法显示可以用如下方法处理: /** * 把科学计数法显示出全部数字 * @param d */ public static String object2Str(Object d) { ...
- 数值或者电话号码被EXCEL转成了科学计数法,用XSSFCell 如何读取
public static Map<String, Integer> readXls() throws IOException { //用来获取每一个小号重复多次,被多少账号用了.来平均 ...
- python:科学计数法转化为浮点型数据
def as_num(x): y='{:.5f}'.format(x) # 5f表示保留5位小数点的float型 return(y) 实验一下 as_num(1.2e-4) In [3]:as_num ...
- 解决从Excel导入数据库,导入到DataTable时数据类型发生变化的问题(如数字类型变成科学计数法,百分数变成小数)
做项目的时候,C#读取Excel数据到DataTable或者DataSet,设断点查看DataTable,发现Excel的显示为较长位数数字的字段如0.000012在DataTable中显示为科学计数 ...
- 用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)
做过很多次导出excel了.都碰到一个问题,内容里如果包含一个比较长的数字,比如订单号“2546541656596”,excel会自动变成科学计数法... 弄过好几次都没有解决,最近又要导出excel ...
- Gridview数据导出excel时身份证号码为科学计数法的解决方法
if (e.Row.RowType == DataControlRowType.DataRow) { string id = this.GridView1.DataKeys[e.Row.RowInde ...
- Laravel 使用 maatwebsite/excel 时长数字出现科学计数法的解决办法
在使用 maatwebsite/excel 包导出Excel的时候,有的单元格里会存放手机号等一大串的数字,这一串数字会被Excel软件处理为科学计数法,在后续处理数据的时候会产生不小的麻烦,一个个去 ...
随机推荐
- 漂亮的Qt控件 QSS代码例子
Qt Style Sheets Examples We will now see a few examples to get started with using Qt Style Sheets. S ...
- activiti自己定义流程之Spring整合activiti-modeler实例(一):环境搭建
项目中须要整合activiti-modeler自己定义流程,找了非常多资料后,最终成功的跳转到activiti-modeler流程设计界面.下面是记录: 一.整合基础:eclipse4.4.1.tom ...
- linux 建立反向shell
首先是netcat的版本选择BSD版的不支技-c -e参数,而GNU版的有-e参数,这里我用的是GNU版: sh-4.1# nc -V netcat (The GNU Netcat) Copyrigh ...
- 窗体彻底关闭事件FormClosed
//Application.Exit()是退出整个应用程序 Application.ExitThread();//强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题 System.Dia ...
- 每日英语:Robots To Revolutionize China
A new worker's revolution is rising in China and it doesn't involve humans. With soaring wages and a ...
- 回调形成树形结构tree
//Tree.vue <template> <li> <span @click="toggle"> <i v-if="isFol ...
- System.Data.SqlClient.SqlError:无法打开备份设备'D:\..\abc.bak'
在SQL Server中备份数据库时遇到备份对于服务器“服务器名”失败. (Microsoft.SqlServer.Smo)其他信息:System.Data.SqlClient.SqlError:无法 ...
- 使用Windows防火墙禁止Ping入
前言: 不知道安全比赛是咋样的,但是肯定是日来日去的,那么故事来了,大牛们肯定会狂ip,刚开始肯定是一个段的狂扫.咋让他不扫到你呢?就是这篇文章了.其实这一切都是ICMP在作祟 windows2003 ...
- 【Unity笔记】获得鼠标点击屏幕的位置,并转成世界坐标
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
- ExtJS获取Grid的行数
1. grid.getSelectionModel().getCount() ; // 获得当前选中的行数 2. grid.getStore().getTotalCount(); ...