批处理,如何乘以百分比或小数

时间:2014-05-06 02:28:09

标签: batch-file decimal

我目前正在批量工作。 我想知道一种方法来乘以或加上百分比和/或小数。

示例:

set /a wcexpt= %wcexpt% * ??

每次我尝试这个:

set /a wcexpt= %wcexpt% * .005

导致0。

当我尝试这个时:

set /a wcexpt= %wcexpt% * %5

导致"缺少操作数"

3 个答案:

答案 0 :(得分:1)

简短的回答是批处理只使用整数,因此必须将公式转换为使用整数。

此外,整数限制为〜+/- 2 ** 31。

你可以扩大范围 - 但它需要一些数学体操并且会非常慢。

答案 1 :(得分:0)

我尝试了这个,并且它正在将结果作为1

set /a wcexpt = 20
set /a wcexpt= (wcexpt * 5)/100
echo %wcexpt%

答案 2 :(得分:0)

您可以以非常简单的方式仅使用整数来模拟小数运算。例如:

@echo off

set /P "wcexpt=Enter value: "

rem Get 5% of wcexpt:
set /a percent=wcexpt * 5

rem Show result:
echo The 5%% of %wcexpt% is %percent:~0,-2%.%percent:~-2%

输出:

C:\> test
Enter value: 1234
The 5% of 1234 is 61.70

当然,可以进行更详细的模拟,包括所有算术运算。有关详细信息,请参阅this post