如何在“设置”批处理文件变量中设置算术精度?

Irf*_*fan 1 windows environment-variables cmd.exe

如何为除法的 SET 算术运算设置精度?

例如。 SET /A t=3/4

但这给出的结果为 ' 0' 而不是 ' 0.75'(我想要至少 2 个小数位)

或者是否有任何其他方法可以set /A在批处理文件中进行此类算术运算(使用 " "以外的其他方法)?

Sco*_*ott 6

您可能无法实际执行您想要的操作,\n但您可以通过乘除\n10 的幂以及执行字符串操作来近似获得所需的结果。\xc2\xa0\n例如,请考虑以下情况divide.bat

\n\n
@echo off\nset /a q=%1 * 1000 / %2\necho q = %q:~0,-3%.%q:~-3%\n
Run Code Online (Sandbox Code Playgroud)\n\n

%variable_name:~start_pos,length%是命令提示符变量子字符串表示法。\xc2\xa0\n负数相对于字符串的长度(变量值);\na 缺少长度表示字符串的其余部分。

\n\n

以下是一些示例结果:

\n\n
divide 8 4    ->    q = 2.000\ndivide 6 4    ->    q = 1.500\ndivide 3 4    ->    q = .750\n
Run Code Online (Sandbox Code Playgroud)\n\n

在最后一个示例(您的示例)中,q实际上是 750。\xc2\xa0\n如果您想计算某些内容的 75%,则可以

\n\n
    \n
  • 乘以%q%并除以 1000,或者
  • \n
  • 乘以%q%并记住结果是 1000\xc3\x97 它的真实值,\n并且在显示它时需要使用子字符串表示法。
  • \n
\n


Nif*_*fle 5

SET /A 仅适用于整数。所以没有办法使用它获得 0.75。
而且我知道没有其他方法可以在批处理文件中进行算术运算。

  • 真的吗?2个赞?这甚至不能解决我的问题。顺便说一句,在评论中更好。JdeBP 的解决方法已经足够好了(如下)。 (2认同)