#N88BASIC
dim x as Double
x=-1 : print using "###.#";x
とすると、「-0.9」と表示される。
また、
x=-1.9 : y=CInt(x)
とすると、y=-1となる(Fixと同じ動作をする)が、
ヘルプにはCIntは四捨五入とあり、ヘルプどおりの動作をしない。。
数値の丸め
-
- 記事: 473
- 登録日時: 2005年5月31日(火) 18:51
- お住まい: 新潟県
Re: 数値の丸め
ヘルプの表現が間違ってるんだと思います。河川屋さん さんが書きました:また、
x=-1.9 : y=CInt(x)
とすると、y=-1となる(Fixと同じ動作をする)が、
ヘルプにはCIntは四捨五入とあり、ヘルプどおりの動作をしない。。
CDbl関数やCSng関数を見ると分かりますけど、これらの関数はたんに型変換をいっそう明示する為の関数です。
CInt関数の定義は以下のようになっています。
コード: 全て選択
Function CInt(ByVal number As Double) As Long
CInt=number As Long
End Function
あ。以下のようにマクロ関数にしても良さそうですね。ダメなのかな?
コード: 全て選択
Const CDbl(number) = number As Double
Const _CUDbl(number) = number As Double
Const CDWord(num) = num As DWord
Const CInt(number) = number As Long
Const CSng(number) = number As Single
小数点型(?)を整数型に変換する時、死者誤入してくれないっていうバグとも言えますし、小数点型を整数型に変換する時、四捨五入してくれっていう要望もできますね。