Математика Java с плавающей точкой - (перевод в футы / метры)

StackOverflow https://stackoverflow.com/questions/611709

  •  03-07-2019
  •  | 
  •  

Вопрос

Я думаю, довольно простой вопрос - я выполняю эту функцию:

private double convertMetersToFeet(double meters)
{
  //function converts Feet to Meters.
      double toFeet = meters;
      toFeet = meters*3.2808;  // official conversion rate of Meters to Feet
      return toFeet;
}

Проблема - выход; например я получаю 337.36080000000004 от входа 101. Какова подходящая практика для усечения чисел с плавающей запятой?

Как и предполагалось в ответах ниже, я бы хотел, чтобы 4 значащие цифры соответствовали моему коэффициенту конверсии.

Другие советы

Я отвечаю на свой вопрос ради потомков. Я использовал ответ DecimalFormat выше, но в ответах не учитывался тип возврата метода.

Вот готовый код:

  private double convertMetersToFeet(double meters)
{
  //function converts Feet to Meters.
      double toFeet = meters;
      toFeet = meters*3.2808;  // official conversion rate of Meters to Feet
      String formattedNumber = new DecimalFormat("0.0000").format(toFeet); //return with 4 decimal places
      double d = Double.valueOf(formattedNumber.trim()).doubleValue();
      return d;
}

Используйте java.math.BigDecimal для десятичной арифметики.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top