thank you for your post.
The approximation issue you are experiencing may be due to a small bug in Triangle.java.
Could you please try the following fix and compile jfuzzylite again?
In Triangle.java, substitute line 75:
if (Op.isLE(x, a) || Op.isGE(x, c))
if (Op.isLt(x, a) || Op.isGt(x, c))
Instead of a
<= or >=, the change is for
< or >.
Please let me know if this fixes your issue.