掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
2個の変数の値を入れ替えるには (ID:349)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
2つの値を交換する関数があるかどうかは確認できませんでした。 VBだとSwapだったと思うのですが、DelphiのSwapは上位バイトと下位バイトを交換するだけでした。 この関数の場合、ロジックは簡単なので、1つユニットを作って、そこにSwapFloatなどとして作れば回避できますがどうでしょう。 僕は、見つからない関数などを別ユニットで作っておいて、見つけたときにその関数を交換するようにしています。 > 又、以前はsingle型に整数を代入すると小数点が勝手に付いた > と思うのですが、Delphi6ではそのまま保持しているようです そのまま保持というのは、どういう現象でしょうか。 つまり、 var a: single; begin a := 12345; b := @a; Edit1.Text := intToHex(integer(b[0]), 2) + intToHex(integer(b[1]), 2) + intToHex(integer(b[2]), 2) + intToHex(integer(b[3]), 2); とすると、Edit1(TEditコンポーネント)に、 39300000 と表示されるということでしょうか。 # 12345の16進数は、$00003039 Delphi5では、きちんとSingle型で代入できています。 # 00E44046と表示されました それとも、Format('%f', a);としたときに、12345.00と表示されることでしょうか。 Delphi5では、'%f'のときは12345.00と表示されます。'%.0f'なら、12345と表示されます。 Delphi6では、省略したときに表示する桁数を変更したのかもしれません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.