[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何对含科学计数数字的txt批量修改?

我有如下内容的大量txt文件
2.0000000000000001e-001
0.0000000000000000e+000
0.0000000000000000e+000
-2.0000000000000001e-001
1.6695009999999998e+005
2.8049900000000001e+004
需要对科学计数改为正常数字,即如下
0.2
0
0
-0.2
166950.09999999998
28049.900000000001

[ 本帖最后由 alexwxcong 于 2010-5-2 20:30 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

诚请高手帮忙,俺琢磨了一天了,实在水平太低

TOP

e-001就是前面的2.0000000000000001乘以0.1
e+000数字不变
e+005就是前面的1.6695009999999998乘以100000
e+004就是前面的2.8049900000000001乘以10000

TOP

谢谢hanyeguxing ,我先备份一个试过了,按你的方法好像是可以,谢谢啊

TOP

原帖由 namejm 于 2010-5-2 01:54 发表
  1、小数点后的位数是否只保留有16位?
  2、是否所有的正数都没有前缀+而只有负数才有前缀-?
  4、e后的004、005之类的是否有可能会达到999?请给出它的范围。



1,小数点后的位数可以不用太多,8位就够了
2,前缀可以不用考虑,可以直接删除E前的那个数字
3,E后面的004/005这种不会超过010

TOP

恩,其实科学计数就是移动小数点

TOP

原帖由 alexwxcong 于 2010-5-2 11:16 发表
谢谢hanyeguxing ,我先备份一个试过了,按你的方法好像是可以,谢谢啊

不好意思啊,发现一个问题,就是我这种txt文件大概有3千多个,其中差不多1000左右是正常的,没有科学计数的,如果按照hanyeguxing兄这个代码执行,会将其中原本正常的变成这样
0
0
0
0
0.829499998926702
0.3405
原本是这样的
0.2
0
0
-0.2
82949.9998926702
34050

TOP

原帖由 随风 于 2010-5-2 13:25 发表
不知道对不对
echo off & setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=e" %%i in (a.txt) do (
   set var=%%j
   for /f "tokens=1,2 delims=." %%a in ("%%i") do (
      set z=%%a&set x ...

我的不是在一个txt里面,是有数千个txt

TOP

哦,谢谢,是这样的,每个txt内容只有上面贴出的6行,txt文件的数量大概是3千多,
目的是,把全部的txt转换成标准的常规数字
现状是两种txt都有,有些是常规数字,有些是科学计数法,不存在一个txt里面既有常规数字又有科学计数法的情形
思路没变,只不过没表述清楚

[ 本帖最后由 alexwxcong 于 2010-5-2 17:54 编辑 ]

TOP

因为我开始没完全说清楚,让各位费解了,实在对不住,在此表示歉意,我已经另行找了一个搜索所有科学计数法的txt,另存到一个文件夹,在用hanyeguxing兄的方法就可以解决了,在这谢谢了,特此结贴。

TOP

返回列表