ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 05:54

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
 記事の件名: 数値の丸め
投稿記事Posted: 2006年6月07日(水) 00:31 
#N88BASIC
dim x as Double
  x=-1 : print using "###.#";x
とすると、「-0.9」と表示される。

また、
x=-1.9 : y=CInt(x)
とすると、y=-1となる(Fixと同じ動作をする)が、
ヘルプにはCIntは四捨五入とあり、ヘルプどおりの動作をしない。。


通報する
ページトップ
   
 記事の件名: Re: 数値の丸め
投稿記事Posted: 2006年6月07日(水) 06:50 
オフライン

登録日時: 2005年5月31日(火) 18:51
記事: 473
お住まい: 新潟県
引用:
また、
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
追記。
小数点型(?)を整数型に変換する時、死者誤入してくれないっていうバグとも言えますし、小数点型を整数型に変換する時、四捨五入してくれっていう要望もできますね。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年6月12日(月) 19:53 
オフライン

登録日時: 2006年5月07日(日) 17:16
記事: 185
お住まい: 宮城県
別な突っ込みですけど死者誤入は四捨五入ですよね?


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[13人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean