I am sorry for the late response (I was on holidays).
The difference in the result is too big for it to be considered a margin of error.
Could you please try using values without scientific notation (i.e., convert -2.776e-17 to 0.0, -2.22e-16 to 0.0, and 99.7354497354497 to 100)? I just want to make sure the problem is not when parsing such numbers. Please compare the results with Matlab and jfuzzylite, and let me know.