gmy 发表于 2005-6-5 11:56:11

DOS下如何实现数值运算?

[这个贴子最后由gmy在 2005/06/05 01:23pm 第 1 次编辑]

大家知道,在BASIC,C语言或WIN2K的CMD命令行中可以轻松实现数值运算,但在纯DOS命令行下就困难了,需要第三方工具strings或varset等,如果是普通的+-*/的算数运算还能对付,但稍难一点的,诸如 BASIC 求整数 x=int(y) 就不好现实了,不知纯DOS下有这样的第三方小工具吗?另外还有 求四舍五入,平方根,绝对值 函数也要!

wang6071 发表于 2005-6-5 14:40:24

DOS下如何实现数值运算?

[这个贴子最后由wang6071在 2005/06/05 08:48pm 第 2 次编辑]

下面使用xset.com处理四舍五入例,注意,下面的批处理仅处理小数位是0-1位的情况,大于1位请修改相应的left判断语句。
set vartmp=10.4                        //这里放入要处理的数
xset /math vartmp1=%vartmp%+0.5      //先将原值+0.5
xset /math var=%vartmp1%-%vartmp%      //用新值-原值
if not var=="1" goto var1   
var0:
   set var=%vartmp1%      //处理原值小数位是0.5的情况(此时新值无小数位)
   goto end
var1:
   xset /left -2 var=%vartmp1%//原值小数位不是0.5的情况(此时新值有小数位,用left去掉)
end:
   set vartmp=
   set vartmp1=
至此,var中已是需要的四舍五入的值。
xset的/math可以做
    Mathematical operators:
      - on integer and floating point values:   + - * / () ^ (exponent)//有指数运算哦!
      - on integer values:                        % (modulo)
    Logical operators:      = < > <= >= <>
                            return 1 if true, 0 if false
                            Rem: ';*'; may be used to ';and'; values,
                                 ';+'; to ';or'; them.
    Precedence:   + and - have the highest precedence,
                  all other expressions are ev&#97;luated from left to right.
另外,strings也可以做整数的add(整数加) sub(整数减) mul(整数乘) div(整数除) and or xor not(逻辑运算)等运算(注意,仅限于整数)
楼主要求的平方根,绝对值可以通过上述方法来变通解决。

pk4321 发表于 2005-6-6 14:46:11

DOS下如何实现数值运算?

在DOS下通过命令行进行计算还不如使用Tubro C或QBASIC来算好过了!

gmy 发表于 2005-6-6 16:29:43

DOS下如何实现数值运算?

谢谢 wang6071,看来只能用XSET自己写了

tanchenglong 发表于 2024-3-22 13:43:14

好贴,先收藏了,楼主加油~~{:3_155:}

axiang117 发表于 2024-3-22 15:22:06

现在dos基本上没人用了,只能帮顶

pda8888 发表于 2024-3-23 14:11:06

有dos版的bc,可以用。

dos时代菜鸟 发表于 2024-3-23 16:48:59

20年前的问题,现在 回答个啥?
页: [1]
查看完整版本: DOS下如何实现数值运算?