ᅠ
Самое удобное функция для округления по указанному количество десятичных знаков это по моему, ROUND. Я пользуюсь её.
Это надо лезть в устройство real
и считать математически, а затем тестировать на практике.
Но константой это нигде не хранят, как раз потому, что если вам нужна эта константа - у вас что то не так с кодом.
-
Она называется
Round
, а неROUND
. И она самая базовая, скорее всего первая о которой вы узнали. Странно говорить о сравнении удобств, не имея достаточно опыта с разными средствами. -
Ну, сама
Round
вызываетSystem.Math.Round
. Название длиннее, зато и функционала уMath.Round
больше. То есть, раз уMath.Round
больше функционала - она ещё и по умолчанию удобнее в случаях гдеRound
не подходит, вне зависимости от личных предпочтений. -
Режимы округления (о которых тут шла речь) отличаются округлением чисел типа
n+0.5
, где n - целое. У простоRound
всего 1 такой режим, так что как раз в данном случае - оно не в тему.
Это она (9.97920154767359851E291
)?
begin
Writeln('997920154767359850'+'9'*274);
var x:real:=real.Parse('997920154767359850'+'9'*274);
Writeln(real.MaxValue-x<>real.MaxValue);
Writeln('997920154767359851'+'0'*274);
x:=9.97920154767359851E291;
Writeln(real.MaxValue-x<>real.MaxValue);
end.
На выводе:
9979201547673598509999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
False
9979201547673598510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
True
Ну, вроде да. Но, всё же, где вы это использовать собираетесь?
Я вот за всем этим довольно долго наблюдаю и все время меня терзает мысль, что про подобный процесс уже где-то читал. Deja vu. И вот сегодня вспомнил.
Что за “Дополнительные файлы”?
Это, по моему, примеры из книги Абрамян. Внизу в описание указано
Нет! Это описание пункта “Задачник PT4”. Описания не имеют следующие пункты:
- “Входные языки”,
- “Дополнительные файлы”,
- “Українська”.
Ясно из контекста, что для пункта “Українська” должно быть описание “Поддержка украинского языка”. Ладно, пункт “Входные языки” ещё включает в себя “Язык PascalABC.NET” и “Ассоциировать с расширением .pas”. Но зачем тут вообще “Дополнительные файлы”!?
Вопрос не стоит выеденного яйца. Ну интересно если настолько, сделайте вторую установку с отключенным этим пунктом, укажите иную папку установки и сравните потом папки. Но нет, надо же задавать вопросы, потом ждать ответов, обсуждать…
Я понял. Этот пункт создаёт папку “Files” в “*\PascalABC.NET”. В ней находится папка Databases. В ней находятся файлы “freqs.txt”, “words.txt”, “Страны.csv”, “Ученики.csv”. Содержание freqs.txt: таблица со столбцами, разделёнными пробелом: № п/п, вещественное число с двумя знаками после точки, слово на русском, часть речи слова на английском. Содержание words.txt: то же самое, что и freqs.txt, но с одним столбиком и теми же словами. Содержание Страны.csv: таблица с 4-мя столбиками: страна, столица, численность населения, часть света. Содержание Ученики.csv: таблица с 5-ью столбиками: фамилия, возраст (5–11 лет), пол, да/нет, рост в см. А теперь вопрос: кому это нужно, да ещё так сильно, что встроено в установщик и устанавливается с паскалем по умолчанию?
Ну, часть из этого точно используется в каких то примерах.
В остальном - частичная установка, конечно, не помешала бы. Но для этого нормальный установщик надо делать, не казёный. Но результат ещё меньше нужен, чем IDE со всегда работающим анализатором кода.
Так что если кому то не приспичит самому реализовать - это не скоро.
Не знаю, я всегда выбираю минимальную установку и мне нормально
“А теперь вопрос: кому это нужно, да ещё так сильно, что встроено в установщик и устанавливается с паскалем по умолчанию?” - Можно, по моему, использовать при обучение работа с файлами низкого уровня. А при инсталляции можно убрать галочку, круторогого не хотите. Я использую и полную, и установка по выбору, а также минимальный.
Как адаптировать “обход” под паскаль?
Написать этот же код на паскале, в чём проблема?
Вряд ли я смогу сделать это самостоятельно, поскольку почти не знаю команд, равносильных представленным в вопросе Kyle Brandt’а.
Каких ещё команд? Команды в ассемблере
uses System;
uses System.IO;
procedure SetInputBufferSize(bufSize: integer);
begin
var inStream := Console.OpenStandardInput(bufSize);
Console.SetIn(new StreamReader(inStream, Console.InputEncoding, false, bufSize));
end;
begin
SetInputBufferSize(1024);
var s := ReadString;
end.
Зачем писать
если и без этого работает? (Если что, без uses System.IO;
не работает.)