通过SNMP显示浮点数的好方法是什么?

Rob*_*ert 7 floating-point snmp

我正在编写SNMP代理.我需要将具有小数点的值发送到SNMP管理器.

我有几个选择:

  1. 截断数字.
  2. 乘以常数.
  3. 问Stackoverflow.

如果我截断数字,我会丢失很多我需要的信息.

如果我乘以常数,那么管理器将显示最终用户不愿看到的奇怪单位.(克而不是千克).

所以,我正在做选项3.我该怎么办?

Mic*_*ham 12

通常的标准方法是定义具有整数类型的TEXTUAL-CONVENTION(例如Integer32或Unsigned32)和带有"dN"格式的DISPLAY-HINT,其中N是小数应移位的位数显示目的.

因此,对于具有从(例如)0.0到10.0的单个小数位的值,您将使用类型为Unsigned32(0..100)的TEXTUAL-CONVENTION和"d-1"的DISPLAY-HINT.在线上,值的范围从0到100,但管理器(通过加载的MIB模块)将小数位移一位以显示0.0到10.0的范围.

其他方法不利于互操作性.