从诺基亚健康 API 读取温度时,我得到以下读数。然而,这些都不正确。在诺基亚应用程序中,摄氏度读数如下:
35C { value: 26918, type: 12, unit: -3 }
35.6C { value: 23569, type: 12, unit: -3 }
36.7C { value: 27398, type: 12, unit: -3 }
从诺基亚健康 API 读取温度时,我得到以下读数。然而,这些都不正确。在诺基亚应用程序中,摄氏度读数如下:
35C { value: 26918, type: 12, unit: -3 }
35.6C { value: 23569, type: 12, unit: -3 }
36.7C { value: 27398, type: 12, unit: -3 }
从我可以从文档中收集到的信息:
value
是度量的值。这需要与unit
参数一起使用才能获得正确的值。
type
表示度量类型。在这种情况下,12 表示温度
unit
是指数乘数,需要与值字段相乘才能获得以 SI 单位表示的实际值。
公式:
actualValue = value * (10 ^ unit)
分解你的一个例子:
{ value: 26918, type: 12, unit: -3 }
这里的类型是 12,所以它是温度(因此,如果 API 以 SI 单位返回,我们可以假设单位是开尔文)
所以,actualValue = 26918 * (10 ^ -3)
也就是26.918K
文档没有明确提到温度单位是什么。我假设它是开尔文,因为那是温度的国际单位制单位。摘自文档:
价值
以 SI 单位(千克、米等)为单位的度量值。值应乘以 10 的“单位”次方(见下文)以获得实际值。
单元
“值”参数的 10 次方应乘以得到实际值。例如:value = 20 和 unit=-1 表示该值确实是 2.0