标题: [文本处理] 批处理来处理文本每行数字去小数点,四舍五入怎么解决[已解决] [打印本页]
作者: shchaoge 时间: 2023-11-27 21:28 标题: 批处理来处理文本每行数字去小数点,四舍五入怎么解决[已解决]
本帖最后由 shchaoge 于 2023-11-28 17:43 编辑
批处理来处理文本每行数字去小数点,四舍五入怎么解决?
1|600000|20231127|77.53
1|600004|20231127|37.28
1|600006|20231127|797.73
1|600007|20231127|12.57
1|600008|20231127|25.30
1|600009|20231127|89.64
1|600010|20231127|186.74
1|600011|20231127|67.88
1|600012|20231127|56.58
1|600015|20231127|213.78
1|600016|20231127|55.34
1|600017|20231127|42.66
1|600018|20231127|67.35
1|600019|20231127|162.02
1|600020|20231127|2.04
1|600021|20231127|21.32
1|600022|20231127|308.66
1|600023|20231127|90.00
1|600025|20231127|28.94
1|600026|20231127|44.38
1|600027|20231127|34.43
作者: pd1 时间: 2023-11-27 22:02
原文件1.txt- powershell -c "gc .\1.txt|%{[system.String]::Join('|',[int[]]$_.split('|'))}>2.txt"
复制代码
作者: hfxiang 时间: 2023-11-28 10:03
回复 1# shchaoge
用第3方工具gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )实现方法如下:- gawk -F"|" -v"OFS=|" "{$NF=int($NF+0.5)}1" 1.txt>2.txt
复制代码
作者: ShowCode 时间: 2023-11-28 10:53
回复 1# shchaoge - @echo off
- set "OldFile=1.txt"
- set "NewFile=2.txt"
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- (for /f "tokens=1-5 delims=|." %%a in ('type "%OldFile%"') do (
- if "1%%e" geq "15" (
- set /a n=%%d+1
- ) else (
- set n=%%d
- )
- echo %%a^|%%b^|%%c^|!n!
- ))>"%NewFile%"
复制代码
作者: WHY 时间: 2023-11-28 13:16
- gawk -F"|" -v OFS="|" "{for(i=1;i<=NF;i++)$i=sprintf(\"%%.0f\", $i)}1" a.txt > b.txt
复制代码
作者: WHY 时间: 2023-11-28 13:19
- @if(0)==(0) echo off
- type a.txt | cscript //nologo //e:jscript "%~f0"
- pause & exit
- @end
-
- var s = WSH.StdIn.ReadAll().replace(/\d+\.\d+/g,function(s0){return Math.round(1*s0)});
- WSH.Echo(s);
复制代码
作者: WHY 时间: 2023-11-28 13:29
本帖最后由 WHY 于 2023-11-29 13:59 编辑
- PowerShell "$s = (gc a.txt -ReadCount 0) -join \"`r`n\"; $s = [regex]::Replace($s, '(?>[0-9]+)\.[0-9]+',{[Math]::Round($args[0].Value)}); sc b.txt -Value $s"
复制代码
作者: wanghan519 时间: 2023-11-28 13:29
本帖最后由 wanghan519 于 2023-11-28 13:32 编辑
四舍五入是个比较麻烦的问题,js powershell py都有decimal类,消除浮点误差,然后考虑四舍五入还是四舍六入五成双。。。
作者: shchaoge 时间: 2023-11-28 17:41
谢谢各位大佬 给的代码简单要好用 搞定啦
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |