The problem is NOT with LOG function.
You are using INTEGER DIVISION!
@underlying and @strike are both integers.
select @d1 = (Log(@underlying / @strike) + @RiskFree * @expTime) / (@vol * SQRT(@expTime)) + 0.5 * @vol * SQRT(@expTime)
Try this
select @d1 = (Log(1.0 * @underlying / @strike) + @RiskFree * @expTime) / (@vol * SQRT(@expTime)) + 0.5 * @vol * SQRT(@expTime)
N 56°04'39.16"
E 12°55'05.25"