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;
}
};