У меня есть google о том, как получить 2 десятичных числа для числа с плавающей запятой в java. Ниже приведены мои коды. Наконец, здесь float totalWeight = 0.1*levinWeight+0.8*lsmWeight;
Я получаю ошибку возможной потери точности? Я хотел бы сначала скрыть строку в float, а затем сделать ее равной 2 десятичным разрядам.Возможная потеря точности во время преобразования числа с плавающей запятой
float levinWeight = Float.parseFloat(dataOnlyCombine[2]);
float lsmWeight = Float.parseFloat(dataOnlyCombine[3]);
DecimalFormat df = new DecimalFormat("#.##");
levinWeight = Float.valueOf(df.format(levinWeight));
lsmWeight = Float.valueOf(df.format(lsmWeight));
float totalWeight = 0.1*levinWeight+0.8*lsmWeight;
Не используйте поплавок. Когда-либо. Если у вас их много, и вы знаете, что они могут представлять цифры, которые у вас есть с удовлетворительной точностью. Поскольку вы, очевидно, не знаете этого, это хорошая причина использовать двойную. – Ingo