1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ExcelとPHPとJavaScriptの数値丸めの話

Posted at

はじめに

システム開発の仕事をしているとお客様からExcelの計算式で仕様を渡されることがあると思います。
え、ないですか? 私は最近あったんですよ。
んで、なんの変哲もない数式ならいいのですが、ROUND ROUNDUP ROUNDDOWN 関数が入ってきたときにどうしたもんかなって話です。

置き換えよう

ROUND ROUNDUP ROUNDDOWN は下記の感じで対応しています。

丸め方 Excel PHP JavaScript
四捨五入 ROUND(値, 丸める桁数) round(値, 丸める桁数, 丸めモード) Math.round(値)
切り上げ ROUNDUP(値, 丸める桁数) ceil(値) Math.ceil(値)
切り捨て ROUNDDOWN(値, 丸める桁数) floor(値) Math.floor(値)

こうしてみると、JavaScriptが一番融通がきかないのがわかります。。。
PHPのround関数は丸めモードを変えることによって四捨五入を五捨六入にしたりもできます。日本人で五捨六入したい人はちょいちょい居ますけど、外国の案件でも需要があったりするんでしょうか?

そもそもExcelに ceilfloor はないの?

実はあるのですが、引数がだいぶ違います。

第2引数が「基準となる倍数」とか言ってて、若干ピンとこないですよね。
かなり柔軟な丸めができるのでしょうけど、実用的かと言われると微妙な気がしますね。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?