网站建设资讯

NEWS

网站建设资讯

vb.net转换浮点数 c语言浮点数转换整数

vb.net 4位十六进制 转浮点数

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

成都创新互联主要从事做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务平坝,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

Dim aa(3) As Byte

Dim f As Single

aa(0) = H0

aa(1) = H0

aa(2) = H80

aa(3) = H3F

'CopyMemory(f, aa, 4)

f = BitConverter.ToSingle(aa, 0)

TextBox1.Text = f

End Sub

End Class

vb中有关浮点数的处理问题

首先是从串口中接收的数据.但我不知道你这是不是十六进制的.

我的程序是十六进制的浮点数转换.

假如从串口传过来的数据是:02024167A322 其中 4167A322是浮点数.

那么你就可以用mid()函娄截取浮点数部分.

在下面的程序中MID我就不用了.用的是从TXTBOX控件中输入十六进制数转换为浮点型:

在command_click()事件下写入

Dim b As String

Dim l As Long

Dim f1 As Single

b = Text1.Text

l = Val("H" b)

CopyMemory f1, l, 4 '调用模块中的COPY声明,意义为:将L复制给F1,位数为四位.

Text2.Text = f1

在工程中添加一个模块:写入:

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

这段程序

这样就可以转换了.

但是如果十六进制数超出了浮点数的范围那么VB会自动用科学计数法显示比如说FFFFFFFF.那么最后的浮点数肯定是科学计数法.

vb.net中如何将字符串型转换成浮点型

Dim s As String = "你的字符串"

Dim si As Single = CType(Val(s), Single)

MsgBox(si)

程序里测试通过 你试试看。

如何用VB.NET将单精度16进制转换成浮点数

#读取上次检查到的行数

last_line=`cat ./mailinfo`

echo "上次行数:"$last_line

#算出本次alert日志的行数

current_line=`wc -l $alert_log|awk '{print $1}'`

echo "本次行数:"$current_line

#取上次行数和本次行数之间的alert日志内容,然后把ORA错误及上下三行放到mailinfo中

vb 十进制数转浮点数

CSng(应该是吧),返回单精度值

Hex函数,只能返回整数

--------------------------------------

也许是我被CSng的名字骗到……但CSng(1.1234)=1.1234是不争的事实……我猜你用整型数储存的返回值吧……代码这样写:

Dim mySng as Single '你是不是声明成Long或Integer了?

mySng = CSng(1.1234) 'CSng参见下文

MsgBox mySng '是1.1234,一定是1.1234

'顺便问下楼主IEEE754浮点数和Single是不是一回事?对这方面没有了解。

CSng Single 负数为 -3.402823E38 至 -1.401298E-45;正数为 1.401298E-45 至 3.402823E38

至于转为4字节值,可以根据一下代码改编

Function funSignSngTo4Byt(SingleData As Single, ByRef tBytes() As Byte) As Boolean

'高位在前,低位在后

Dim i, d As Integer

Dim PorN As Byte

Dim ExpVal, temp As Long

Dim FraVal, t1 As Long

Dim SingleFra, tempval As Single

Dim gbytBinData(3) As Byte

If SingleData = 0 Then

For i = 0 To 3

gbytBinData(i) = 0

Next i

Exit Function

End If

If SingleData = 0 Then '符号位

PorN = 0

Else

PorN = H80

SingleData = -1 * SingleData '变为正数

End If

ExpVal = Int(Log(SingleData) / Log(2)) '指数

If ExpVal 128 Then

funSignSngTo4Byt = False

Exit Function

End If

If ExpVal = 127 Then

SingleFra = SingleData / (2 ^ ExpVal)

Else

SingleFra = SingleData / (2 ^ ExpVal) - 1

End If

FraVal = Int(SingleFra * 128 * 256 * 256) And HFFFFFF

ExpVal = ExpVal + 127

gbytBinData(0) = PorN + ExpVal \ 2

gbytBinData(3) = FraVal And HFF

FraVal = Int(FraVal \ 256)

gbytBinData(2) = FraVal Mod 256

FraVal = FraVal \ 256

gbytBinData(1) = (FraVal Mod 256) Or ((ExpVal And 1) * 128)

For i = 0 To 3

tBytes(i) = gbytBinData(i)

Next i

End Function

tBytes()里的值就是SingleData的四个字节

说句实话lz应该先上网看看相关的资料,其实上面的代码是我从网上看到的,加了个输出为4字节就贴上来了……

原贴


网站标题:vb.net转换浮点数 c语言浮点数转换整数
路径分享:http://cdweb.net/article/hpidij.html