2016-12-24 55 views
0

我已經嘗試了此網站上的所有問題,即使刪除百分號,它仍然無法正常工作。下面的代碼設置/丟失的操作數

for /f "tokens=*" %%b in (Bought.txt) do (
    echo Newly bought shares %%b 
    set c=0.001 
    set /a a=b*c 
    echo Next tick's price change: %a% 
) 

與百分號它輸出

Missing operand. 

沒有跡象

Next tick's price change: 0 

,並記住,即使有「B」變量設置爲任何它仍然輸出零。

+2

這是國際海事組織最經常關於延遲擴張的問題。其次是set/a只處理整數沒有浮點數。所以c是零,一個也是。 – LotPings

回答

0

正如我的評論已經指出這不會是你所預期的
(和你忘了使用%% b而不只是B的):

SetLocal EnableExtensions EnableDelayedExpansion 

for /f "tokens=*" %%b in (Bought.txt) do (
    echo Newly bought shares %%b 
    set c=0.001 
    set /a a=%%b*!c! 
    echo Next tick's price change: !a! 
) 

編輯要通過千分(含模擬浮點運算)使用方法:

@Echo off 
SetLocal EnableExtensions EnableDelayedExpansion 

for /f "tokens=*" %%b in (Bought.txt) do (
    echo Newly bought shares %%b 
    set c=1000 
    set /a a=%%b/c, d = (%%b %% c ^) 
    Set d=000!d! 
    echo Next tick's price change: !a!.!d:~-3! 
) 

謝謝你的提示JosefZ

+1

'set/a a = %% b/c'也可以代替'set/a a = %% b /!c!' – JosefZ

+0

一切都很好,謝謝,我知道它可能與EnableDelayedExpansion有關 – MCbigminer