Use `calc()` to improve precision

Fix gh-8