トップページ > プログラム > 2015年09月13日 > zY9i8RMC

書き込み順位&時間帯一覧

16 位/165 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000002103



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
VB.NET質問スレ(Part42) [転載禁止]©2ch.net

書き込みレス一覧

VB.NET質問スレ(Part42) [転載禁止]©2ch.net
567 :デフォルトの名無しさん[sage]:2015/09/13(日) 21:12:55.28 ID:zY9i8RMC
BitConverter.ToSingle に関する質問です。

Private Function fn4Bytes2Singel(ByVal Offset As Integer) As Single

'parse 4 of bytes into an Single value,

Dim bytaryData(3) As Byte 'byte array structure
Dim SglData As Single
Dim Ix As Integer 'index counter

For Ix = 0 To 3
bytaryData(Ix) = aryBuffer(Offset + Ix)
Next Ix

SglData = BitConverter.ToSingle((bytaryData), 0)

Return SglData

End Function

ファイルのデータを aryBuffer() as byte に読み込んで、そこに正しく記録されている
Single 形式の 4 バイトから値を取得すると言う単純な Function です。

しかし、03 84 8A 4B と 04 84 8A 4B と 05 84 8A 4B が同じ値 18155530 を返してきます。
IEEE に準拠した形式であれば 18155526 18155528 18155530 になるはずで、WEB 上の
コンバーターでは、正しく変換されます。

BitConverter.ToSingle の仕様とも思えないのですが、回避する手段をご存じの方が
おられましたら、ご教授頂けますよう、お願い致します。
VB.NET質問スレ(Part42) [転載禁止]©2ch.net
569 :デフォルトの名無しさん[sage]:2015/09/13(日) 21:55:35.41 ID:zY9i8RMC
>>568
ご覧頂いてお判りのとおり、リトルエンディアンです。

最後の1バイトが 03 04 05 なので異なる値になるはずですが、
VB.net はこの桁数になると何故か10の位で丸めてしまいます。
VB.NET質問スレ(Part42) [転載禁止]©2ch.net
571 :デフォルトの名無しさん[sage]:2015/09/13(日) 22:41:58.72 ID:zY9i8RMC
>>570

.ToString("R") で正しく表示されました。とてもありがとう。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。