A Critique on DOS limitation with maths and its workaround

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Post Reply
Message
Author
ghostmachine4
Posts: 319
Joined: 12 May 2006 01:13

A Critique on DOS limitation with maths and its workaround

#1 Post by ghostmachine4 » 05 Apr 2011 07:46

Source1: Floating Point Maths
Source2: set /A

An example of normal maths with decimal values on DOS

Code: Select all

C:\work>set /a x=20
20
C:\work>set /a y=3*x
60
C:\work>echo %y%
60

C:\work>set /a y=3.3*x
Missing operator.


Oops! Batch/DOS does not support floating point maths for newbies to batch who does not know this fact yet. What do you do? You can switch to vbscript or some better programming language if you can afford to. However, for those stuck with just the tools you have, here's an implementation in vbscript to workaround this annoying limitation. Note: vbscript comes installed by default on most Windows distribution. There is no reason one could not get to know it and harness its capabilities (same with powershell).

Code: Select all

WScript.Echo Eval (WScript.Arguments(0))


Code: Select all

C:\work>cscript //nologo test1.vbs "1 * 19"
19

C:\work>cscript //nologo test1.vbs 1*19
19

C:\work>cscript //nologo test1.vbs 20/2.3
8.69565217391304

C:\work>cscript //nologo test1.vbs 1+2
3



There, your problem is solved.

DosItNotHelp

Post Reply