批处理文件支持的数量限制
Number limit supported by batch files
我试图使用批处理文件添加一个 12 位和一个 8 位数字。但是,它给出了以下错误 - Invalid number. Numbers are limited to 32-bits of precision
.
我应该怎么做才能克服这个障碍?
如果有帮助,我是这样添加的-
set /a z= (%r:~0% + %u:~0%)
其中 r
和 u
包含要添加的字符串格式的数字。
一个 12 位数字已经超出了 Int32 的范围,这意味着您不能直接在批处理文件中对其进行算术运算。
您可以做的是按数字相加,保持进位,就像您在小学时所做的那样。它会更慢,但它有效。
另一种选择是让其他程序进行计算,例如PowerShell:
for /f %%x in ('powershell %r:~0% + %u:~0%') do set result=%%x
旁注:%r:~0%
的意思是,我认为 »取 %r%
的子串,从字符 0 开始,延伸到字符串的末尾«,这与字符串本身。
我试图使用批处理文件添加一个 12 位和一个 8 位数字。但是,它给出了以下错误 - Invalid number. Numbers are limited to 32-bits of precision
.
我应该怎么做才能克服这个障碍?
如果有帮助,我是这样添加的-
set /a z= (%r:~0% + %u:~0%)
其中 r
和 u
包含要添加的字符串格式的数字。
一个 12 位数字已经超出了 Int32 的范围,这意味着您不能直接在批处理文件中对其进行算术运算。
您可以做的是按数字相加,保持进位,就像您在小学时所做的那样。它会更慢,但它有效。
另一种选择是让其他程序进行计算,例如PowerShell:
for /f %%x in ('powershell %r:~0% + %u:~0%') do set result=%%x
旁注:%r:~0%
的意思是,我认为 »取 %r%
的子串,从字符 0 开始,延伸到字符串的末尾«,这与字符串本身。