|
.NET TIPS 数値の切り捨て/切り上げを行うには?[C#、VB]デジタルアドバンテージ 一色 政彦2008/02/07 |
![]() |
|
|
|
数値の小数点以下の端数を切り捨てるにはMathクラス(System名前空間)の静的メソッドFloorを使い、切り上げるには静的メソッドCeilingを使う。
ちなみに、“Floor”は「床」を意味し、“Ceiling”は「天井」を意味する英単語だ。そのイメージから、端数をより小さい値に切り捨てるならFloorメソッド、より大きい値に切り上げるならCeilingメソッドと覚えておけばよいだろう。
本稿ではこれらのメソッドを利用する方法を紹介する。
そのMath.Floor/Math.Ceilingメソッドのシグネチャは次のとおりだ。
Math.Floor (Decimal)
Math.Ceiling (Decimal)
第1パラメータには切り捨て/切り上げを行うDecimal型(※.NET Framework 2.0以降*1)もしくはDouble型の数値を指定する。
戻り値は、切り捨て/切り上げられたDecimal型もしくはDouble型の整数値となる。
| *1 .NET Framework 2.0以降ではDecimal型が使えるが、.NET Framework 1.xでは常にDouble型を使う必要がある。 |
次のコードはMath.Floor/Math.Ceilingメソッドを使用したコンソール・アプリケーションのサンプル・プログラムである。このプログラムでは「正の数値の切り捨て/切り上げ」を行っている。
|
||
| 正の数値の切り捨て/切り上げを行うサンプル・プログラム(上:C#、下:VB) | ||
| パラメータに指定した数値の後ろに付いているサフィックス(C#の「m」や、VBの「D」)は、数値のデータ型を明示するためのものだ。詳しくは「TIPS:数値のデータ型を明示的に指定するには?」を参照してほしい。 |
●小数点第2位以下での切り捨て/切り上げ
Math.Floor/Math.Ceilingメソッドは、「TIPS:数値を四捨五入するには?」で紹介したMath.Roundメソッドと異なり「小数点第何位までを求めるか」という指定ができない。つまり小数点第2位以下の位で数値の切り捨て/切り上げを行うことはできず、常に整数値に切り捨て/切り上げが行われる。
そこで、例えば小数点第2位で切り捨て/切り上げしたい場合には、いったん数値を10倍して小数点の位置を動かしたうえで切り捨て/切り上げを行い、その後10で割って小数点の位置を戻す、というような小数点のけたをずらす処理が必要となる。例えば次のコードのようになる。
|
||
| 小数点第2位以下の位で数値の切り捨て/切り上げを行うコード(上:C#、下:VB) |
●負の数値の端数の切り捨て/切り上げ
最後に「負」の数値の端数を切り捨て/切り上げを行った場合の例を示しておこう。
|
||
| 負の数値の切り捨て/切り上げを行うサンプル・プログラム(上:C#、下:VB) |
このコードの実行結果を見ると分かるように、負の数値の「-1.5」を切り捨てると(Floor)、「-2」という値が得られ、切り上げると(Ceiling)「-1」という値が得られる。![]()
| カテゴリ:クラス・ライブラリ 処理対象:数値関数 使用ライブラリ:Mathクラス(System名前空間) 使用ライブラリ:Double構造体(System名前空間) 使用ライブラリ:Decimal構造体(System名前空間) 関連TIPS:数値のデータ型を明示的に指定するには? 関連TIPS:数値を四捨五入するには? |
|
||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


