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

[数值计算] [已解决]批处理命令set /a 小数点怎么运算?求方式求原理

本帖最后由 lateol 于 2013-7-9 09:22 编辑

看了一些资料,没看懂....
如小数点
0.75*2
0.5*2
0.3*2
像0.75*2 进位了 小数点怎么偏移
麻烦大神给个简洁的代码谢谢!

弱弱的问 问题1:变量set=abcde 可以指定地方插入量么?比如 插入F  set aa=abcFde  且保证变量是变动的情况下。
         问题2:SET变量里可否直接 排序变量 倒排变量?
1

评分人数

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

bat 不支持浮点
你可以搜索论坛有BAT这方面的计算
暂写个也比较长 没完全测试
注意溢出
  1. @echo off&setlocal enabledelayedexpansion
  2. set "k=00000000"
  3. set a=0.32
  4. set b=0.002
  5. for %%a in (a b) do (
  6.     set "len_%%a="
  7.     if "!%%a:*.=!" neq "!%%a!" (
  8.        set .%%a=!%%a:*.=!
  9.        for /l %%i in (9 -1 1) do if "!.%%a:~%%i!" == "" set "len_%%a=%%i"
  10.     )
  11.     for /f "tokens=* delims=0." %%i in ("!%%a:.=!") do set "%%a=%%i"
  12. )
  13. set /a len=len_a+len_b,n=a*b
  14. if !len! neq 0 for %%i in (!len!) do (
  15.    set n=!k!!n!
  16.    for /f "tokens=* delims=0" %%j in ("!n:~,-%%i!.!n:~-%%i!") do set "n=%%j"
  17.    if "!n:~,1!" == "." set n=0!n!
  18. )
  19. echo !n!
  20. pause
复制代码
问题1
  1. set aa=abcde
  2. set aa=%aa:~,2%F%aa:~2%
复制代码
问题2 什么意思?
1

评分人数

TOP

回复 2# terse


    比如  set str=AFGD424
          排序里边的 变量  set str=ADFG244

TOP

回复 2# terse


    set "len_%%a=" 这是赋值吗?

TOP

回复 4# lateol
变量名在字母数字组合结合的前提下 ADFG244 如果一次排的话 要么这样排:GFDA442 要么:244ADFG   否则 要多次处理

TOP

返回列表