【发布时间】:2018-10-28 11:50:19
【问题描述】:
我在我的influxDB中把这个点放在java中:
dbConnector.write(Point.measurement(machineData.getOpcuaObject())
.time(machineData.getTimestamp(), TimeUnit.MILLISECONDS)
.addField("value2", round(machineData.getValue().floatValue(),2))
.tag("sensor", machineData.getSensor())
.build());
但这并不能解决问题,我不知道为什么。
如果我写进influx的话:
.addField("value2", round(machineData.getValue().floatValue(),2))
我变成了这样:
1526622038902000000 0.13704816468572244048 Istdrehm
如果我写进influx的话:
.addField("value2", 0.13)
我变成了这样:
1526622038902000000 0.13 Istdrehm
为什么,有什么想法吗?
回合代码:
public static float round(float value, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(value));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd.floatValue();
}
【问题讨论】:
-
听起来你需要调试 Java 端——以使 Rounding 方法正确——然后 InfluxDB 端就可以正常工作了。
标签: java types influxdb measurement