• 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"