はじめに 背景と概要 要件 JavaScriptを使用して小数n桁の四捨五入を行う 計算結果はExcelと合わせること JavaScriptのMathオブジェクトでは小数n桁の指定ができません。 JavaScriptライブラリを使用できない事情があり、関数を作ることにしました。 この際、負数の計算で、JavaScriptとExcelの結果に差異が発生してしまいました。 この問題を解決するまでの知見を共有します。 前提バージョン ECMA Script 2015 問題点 まずは、こんなコーディングをしてみました。 数値と端数処理桁数を受け取り、四捨五入した結果を返す関数です。 function myRound(number, pricision) { var _pow = Math.pow(10, pricision); return Math.round(number * _pow) /
![[JavaScript] 負数の四捨五入がExcelと合わない問題 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/eee60f627898ef67b79eafa5dea90a318c0e03da/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JTVCSmF2YVNjcmlwdCU1RCUyMCVFOCVCMiVBMCVFNiU5NSVCMCVFMyU4MSVBRSVFNSU5QiU5QiVFNiU4RCVBOCVFNCVCQSU5NCVFNSU4NSVBNSVFMyU4MSU4Q0V4Y2VsJUUzJTgxJUE4JUU1JTkwJTg4JUUzJTgyJThGJUUzJTgxJUFBJUUzJTgxJTg0JUU1JTk1JThGJUU5JUExJThDJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hN2IyNjgzNGQ2Nzg2NDBkYmYzNmM0NmNiNDM5NTQ1Ng%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweS1zb21lJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz05ZjAxMjhkMTNlZjJhZTBiZWQxMDIyNzZhZGFjNmJjYQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D4197f48a6f61e21899287d85eb8d793b)