找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20861|回复: 3

[数值计算] 批处理分数化小数-位数可以自定义

[复制链接]
发表于 2009-3-22 15:07:18 | 显示全部楼层 |阅读模式
  1. @echo off &setlocal enabledelayedexpansion &cls &color 1a
  2. echo ------分数化小数 如:1 ÷3=0.333... 位数20,30等都可以------
  3. set /p x=被除数--- &set /p y=除数----- &set /p bit=小数位数--
  4. rem set x=%1 &set y=%2 &set bit=%3
  5. rem 利用参数可以作为函数调用 如fenshu.bat 1 3 12
  6. set x0=%x%
  7. if %x% geq %y% (set /a "a=%x%/%y%" &set /a "x1=%x%%%%y%")
  8. if %x% lss %y% (set a=0 &set x1=%x%)
  9. :00
  10. set /a n+=1
  11. set /a "x1=!x1!*10"
  12. set /a "a1=!x1!/%y%"
  13. set r=!r!!a1!
  14. set /a "x1=!x1!%%%y%"
  15. if !n! lss !bit! goto 00
  16. :end
  17. echo ┎──────────────────────────┒
  18. echo   %x0%÷%y%=%a%.%r%
  19. echo ┖──────────────────────────┛
  20. pause
复制代码
下面的由defanive给出的更好。我把下面的复制到这里来贴上。
  1. @echo off &setlocal enabledelayedexpansion &cls &color 1a
  2. set /p devd=分子:
  3. set /p devr=分母:
  4. set /p devn=位数:
  5. set /a devm=devd%%devr*10
  6. set /a deva=devd/devr
  7. set dans=%deva%.
  8. :loop
  9. set /a devn-=1
  10. set /a deva=devm/devr
  11. set /a devm=devm%%devr*10
  12. set dans=%dans%%deva%
  13. if not %devn%==0 goto loop
  14. echo %dans%
  15. pause
复制代码

评分

参与人数 1PB +5 收起 理由
Batcher + 5 感谢分享

查看全部评分

发表于 2009-3-22 15:37:40 | 显示全部楼层
以前也写过一个,貌似我的效率高点。。。
  1. @echo off
  2. set /p devd=分子:
  3. set /p devr=分母:
  4. set /p devn=位数:
  5. set /a devm=devd%%devr*10
  6. set /a deva=devd/devr
  7. set dans=%deva%.
  8. :loop
  9. set /a devn-=1
  10. set /a deva=devm/devr
  11. set /a devm=devm%%devr*10
  12. set dans=%dans%%deva%
  13. if not %devn%==0 goto loop
  14. echo %dans%
  15. pause
复制代码
发表于 2009-3-22 15:42:08 | 显示全部楼层
而且,貌似我们算出来的结果不太一样。。。

1/9801,循环节貌似是198位。。。
 楼主| 发表于 2009-3-22 16:13:17 | 显示全部楼层

回复 3楼 的帖子

我试试你的,看看你是怎么弄的。 谢谢指出错误。现已改正。这次我们的结果相同了呵呵

[ 本帖最后由 myzwd 于 2009-3-22 17:54 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:57 , Processed in 0.018916 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表