Szukaj…


Wprowadzenie

Pliki wsadowe pozwalają na obliczanie tylko 32-bitowych liczb całkowitych, choć można to obejść za pomocą różnych metod.

Za pomocą programu PowerShell

Ponieważ PowerShell jest domyślnie instalowany w każdym systemie Windows od wersji 7/2008 i nowszej, można go używać do bardziej złożonych obliczeń:

@echo off
set "expression=(2+3)*10/1000"
for /f %%# in ('"powershell %expression%"') do set result=%%#
echo %result%

Zwróć uwagę na dodatkowe podwójne cudzysłowy w for /f które zapobiegają konfliktom nawiasów ze składnią polecenia for.

Potencjalnym problemem jest to, że PowerShell jest znacznie wolniejszy niż użycie wsh / vbscript / jscript z powodu ładowania frameworku .net

Za pomocą jscript

WSH/JScript jest instalowany w każdym systemie Windows od NT, więc użycie go do bardziej złożonych obliczeń czyni go dość przenośnym. JScript jest łatwiejszy do połączenia z plikiem wsadowym:

@if (@codesection==@batch) @then
@echo off

set "expression=2*(2+3)/1000"
for /f %%# in ('cscript //nologo //e:jscript "%~f0" "%expression%"') do set 
result=%%#
echo %result%
:: more batch code

exit /b %errorlevel%
@end
WScript.Echo(eval(WScript.Arguments(0)));

Dzięki takiemu podejściu możesz umieścić cały kod w jednym pliku. Jest to szybsze niż używanie PowerShell. Tu i tutaj można znaleźć bardziej zaawansowane skrypty (które można wykorzystać jako pliki zewnętrzne).

Emulowanie obliczeń pisakowych i papierowych, implementacje funkcji matematycznych

  1. Tutaj można znaleźć najbardziej wszechstronną bibliotekę matematyczną, która emuluje obliczenia pióra i papieru i umożliwia pracę z większymi liczbami.
  2. Oto inne przykłady emulacji pióra i papieru: DODAJ , Porównanie , Mnożenie
  3. Niektóre implementacje funkcji matematycznych można znaleźć tutaj .


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow