Вывод трех знаков после запятой

441
17 марта 2017, 23:06

Есть переменная типа double d = 1.5997, подскажите пожалуйста, как вывести три знака после запятой не округляя его? Пробовал Console.WriteLine("{0:0.###}", d); Возвращает 1.6. Пробовал Console.WriteLine("{0:0.000}", d); Возвращает 1.600, а нужно 1.599.

Answer 1

Вот такой костыль поможет. precision - требуемое число знаков после запятой

static double myRound(double x, int precision)
{
    return ((int)(x * Math.Pow(10.0, precision)) / Math.Pow(10.0, precision));
}
Answer 2

Вот менее уневерсальный вариант но более быстрый.

Math.Truncate(1000 * 1.5997) / 1000; // 1,599
Answer 3

небольшая манипуляция должна решить ваш вопрос.

public double ReformatDouble (double num)
        {
            string number = num.ToString();
            string[] array = number.Split('.');
            string newNum = array[0].ToString() + "." + array[1].Substring(0, 3).ToString();
            return Double.Parse(newNum);
        }

ReformatDouble(1.12345);
//результат 1.123
Answer 4
String.Format("{0:0.000}", 140.6767554); // "140.676"
READ ALSO
одинаковые значения в <select>, полученные из msql

одинаковые значения в <select>, полученные из msql

Добрый деньПрошу Вашей помощи в следующем вопросе: Есть выпадающий список, который я получаю в результате выборки из БД SQL

213
непонятное с синтаксисом оператора `array_rand`

непонятное с синтаксисом оператора `array_rand`

Синтаксис array_rand, гласит: array_rand ( array input [, int num_req] ), где num_req - количество выбираемых значений

241
Почему возникает ошибка Parse error: syntax error, unexpected T_VARIABLE?

Почему возникает ошибка Parse error: syntax error, unexpected T_VARIABLE?

Здравствуйте, внутри класса есть задание конфига:

266
Создание подключения к БД [ООП php]

Создание подключения к БД [ООП php]

Начал разбираться с ООП php, а именно с архитектурой MVCВозник вопрос по подключению к бд

402