LoginSignup
5
6

More than 5 years have passed since last update.

javaScriptで500の切り上げ、切り捨て計算方法

Last updated at Posted at 2016-05-14

JavaScriptではMath.floor(),Math.ceil()で少数の切り捨て切り上げは用意されているけど、整数については自前で用意しなくてはいけないっぽい。
(自分がみつけていないだけかも。。)

今回はJavaScriptで500単位の切り上げ、切り捨ての計算を実装してみたので、載せます。

コードとサンプル画面は以下です。
【500切り捨て/切り上げサンプル画面】
コード
サンプル画面
※jsのコードは最近はまってるAngularJSを使って実装してます。$scopeだとか文法に癖があるんでご了承ください。。

あと、500切り捨て、切り上げを利用した飲み代割り勘アプリも作ったので、
よかったらみてください。
【飲み代割り勘アプリ】
コード
アプリ

htmlのコード

<body ng-app="myApp" ng-controller="myCtrl">
    <h2>500の切り捨て/切り上げ計算</h2>  
    <input teyp="number" placeholder="enter number" ng-model="num"></input>
    <div>切り捨て:{{floorFiveHundred()}}</div>
    <div>切り上げ:{{ceilFiveHundred()}}</div>
</body>

jsのコード

切り捨て

    // 500毎に切り下げる関数
    $scope.floorFiveHundred = function(){
        var num = $scope.num;

        if((num % 1000) == 0){
            // 入力値が1000の倍数である場合、計算不要
            return num;
        }

        // 百桁の値を保持
        var hundredDigit = Math.floor(num / 1000);

        if((num % 1000) >= 500){
            // 下3桁が500以上の場合
            return (hundredDigit * 1000) + 500;
        }
        else if((num % 1000) < 500){
            // 下3桁が500より下の場合
            return hundredDigit * 1000;
        }
        else{
            return num;
        }
    };

切り上げ

    // 500毎に切り上げする関数
    $scope.ceilFiveHundred = function(){
        var num = $scope.num;

        if((num % 1000) == 0){
            // 1000の倍数である場合
            return num;
        }

        // 百桁の値を保持
        var hundredDigit = Math.floor(num / 1000);

        if((num % 1000) > 500){
            // 下3桁が500より上の場合
            return (hundredDigit + 1) * 1000;
        }
        else if((num % 1000) <= 500){
            // 下3桁が500以下の場合
            return (hundredDigit * 1000) + 500;
        }
        else{
            return num;
        }
    };

5
6
4

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
5
6