C#关于浮点数类型的加深理解

关于浮点数类型和整数类型声明,在使用上即使偶尔会出现精度问题但浮点数也用的多,对游戏数值来说一般最多是小数点后两位,精度问题少,如果出现精度问题可以参考下方文章,内容量大就直接给链接了。

float 单精度浮点数在机内占 4 个字节,用 32 位二进制描述。

double 双精度浮点数在机内占 8 个字节,用 64 位二进制描述。

一般结果出现精度缺失都是浮点数类型转换成十进制数的问题,在声明时就已经确认数据类型例如:double a =4;声明a为4的double类型值。声明数据类型过程就算无报错,承载计算结果的变量的数据类型改变也是无法改变结果的。

 

C#浮点数运算的精度损失问题

http://t.csdn.cn/kFnK3

 

小数的二进制与十进制转换

http://t.csdn.cn/YHm9x

 

二进制转十进制

http://t.csdn.cn/kciMy

 

进制转换(超详细)

http://t.csdn.cn/ub4Xj

 

c#浮点数类型

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C# Modbus是一种用于通信的协议,用于在不同设备之间传输数据。点数在Modbus通信中也是常见的数据类型之一。 在C#中使用Modbus协议进行点数的传输,需要进行数据的转换和解析。通常情况下,点数在Modbus中以16位或32位的形式进行传输。 如果要发送一个点数到Modbus设备,需要将点数转换为16位或32位的整数,然后将整数发送到设备。同样地,如果要从Modbus设备接收一个点数,需要收到的整数进行解析,转换为点数。 以下是一个示例代码,演示了如何在C#中使用Modbus协议发送和接收点数: ```csharp using; using System.IO.Ports; using Modbus.Device; public class ModbusFloatExample { public static void Main() { // 创建串口连接 using (SerialPort port = new SerialPort("COM1")) { // 设置串口参数 port.BaudRate = 9600; port.DataBits = 8; port.Parity = Parity.None; port.StopBits = StopBits.One; // 打开串口连接 port.Open(); // 创建Modbus主站 using (ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port)) { // 从Modbus设备读取点数 ushort startAddress = 0; // 起始地址 ushort numRegisters = 2; // 寄存器数量 // 读取点数 float[] values = master.ReadHoldingRegistersFloat(1, startAddress, numRegisters); // 打印点数 foreach (float value in values) { Console.WriteLine(value); } // 将点数转换为16位整数 short[] intValues = new short[numRegisters * 2]; for (int i = 0; i < numRegisters; i++) { intValues[i * 2] = (short)(values[i] >> 16); intValues[i * 2 + 1] = (short)(values[i] & 0xFFFF); } // 将16位整数发送到Modbus设备 master.WriteMultipleRegisters(1, startAddress, intValues); } } } } ``` 请注意,上述示例代码仅用于演示如何在C#中使用Modbus协议发送和接收点数。实际应用中,您需要根据具体的Modbus设备和通信方式进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值