試圖創建一個可以接受小數輸入的批處理程序(我沒有其他選項,只能使用批處理),輸入僅限於小數點後兩位。我的問題是我怎樣才能完善輸出以提高準確性。例如,用戶輸入是100.77 * 0.80,答案是80.616,我只能輸出80.61而不是80.616,我想輸出80.62。而我更大的問題是,小數答案將被用來從原來的數量中減去,這將導致小數級的數學錯誤。答案將是80.61和20.16。 這是我的計劃:批處理程序中的小數位數的精度
@echo off
setlocal EnableDelayedExpansion
set decimals=2
set /A one=1, decimalsP1=decimals+1
for /L %%i in (1,1,%decimals%) do set "one=!one!0"
:getFee
set /P "Amt=Enter the Amount (100.00): "
set /P "Disc=Enter the Discount Percentage: "
if "!Amt:~-%decimalsP1%,1!" equ "." goto AmtDeci
:getNumber
goto NoDeci
:AmtDeci
set "fpA=%Amt:.=%"
set "fpB=%Disc:.=%"
set /A mul=fpA*fpB/one
set discout=!mul:~0,-2!.!mul:~-2!
echo The Discount is: %discout%
set /A "fpD=%discout:.=%"
set /A sub=fpA-fpD
set Amtout=!sub:~0,-%decimals%!.!sub:~-%decimals%!
echo The Amount less discount is: %Amtout%
pause
Exit /B
:NoDeci
set /a discout=%Amt%*%Disc%/100
set /a Amtout=%Amt%-discout
echo The Amount less Discount is: %Amtout%
echo The Discount is: %discout%
pause
批次只能用32位整數進行數學運算。我猜這個要求實際上是你不能在你的電腦上安裝任何東西;改用PowerShell或VBScript。 – SomethingDark