我正在编写一个SNMP代理程序。我需要将带小数点的值发送给SNMP管理器。
我有几个选项:
- 截断数字。
- 乘以一个常数。
- 向Stackoverflow求助。
如果我截断数字,我会失去很多我需要的信息。
如果我乘以一个常数,那么管理器将显示奇怪的单位,而最终用户不愿意看到这些单位(如克而不是千克)。
所以,我选择第三个选项。那我该怎么做呢?
我正在编写一个SNMP代理程序。我需要将带小数点的值发送给SNMP管理器。
我有几个选项:
如果我截断数字,我会失去很多我需要的信息。
如果我乘以一个常数,那么管理器将显示奇怪的单位,而最终用户不愿意看到这些单位(如克而不是千克)。
所以,我选择第三个选项。那我该怎么做呢?
以IEEE-754格式(8个八位字节)的八进制流形式呈现。详情请参见:http://en.wikipedia.org/wiki/IEEE_754-2008
我更倾向于通过OCTET STRING/DisplayString发送数据。像“1.5”这样的数字可以轻松发送。
然而,如果数据需要准确,您可以使用Kyle的建议通过发送字节(八位组)来实现。显然,这也是通过OCTET STRING发送的,因为它是一个完美的字节容器。