Форум: "Прочее";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];
ВнизСуществует ли в Дельфи аналог функции toPrecision, округляющей Найти похожие ветки
← →
Гек (2009-01-14 17:16) [0]числа до ЗНАЧАЩИХ цифр после запятой, а не просто до N чисел после запятой?
← →
Сергей М. © (2009-01-14 17:21) [1]Приведи пример ..
← →
Jeer © (2009-01-14 17:25) [2]toГек
Опять началось..
← →
palva © (2009-01-14 17:41) [3]Если считать, что toPrecision является преобразованием числа в строку, то для нее имеется аналог в Делфи. Это функция Format с подходящим спецификатором.
← →
Правильный$Вася (2009-01-14 17:41) [4]значащих для кого?
← →
tesseract © (2009-01-14 17:41) [5]
> числа до ЗНАЧАЩИХ цифр после запятой, а не просто до N чисел
> после запятой?
Это числа со знаком что ли ? Округление бывает арифметическое, банковское и бухгалтерское. Скажи какое нужно.
← →
Jeer © (2009-01-14 17:47) [6]
> Правильный$Вася (14.01.09 17:41) [4]
>
> значащих для кого?
>
Вот именно.
Чел вообще не в теме сути.
← →
Гек (2009-01-14 17:54) [7]
> Сергей М. © (14.01.09 17:21) [1]
>
> Приведи пример ..
a = 0.000000000123457
a.toPrecision(2) даёт 0.00000000012
← →
clickmaker © (2009-01-14 18:24) [8]руками надо писать
по стандарту значащими считаются все, а не только после нулей
← →
Jeer © (2009-01-14 18:25) [9]
> по стандарту значащими
по факту, вообще-то :)
← →
Гек (2009-01-14 18:33) [10]
> clickmaker © (14.01.09 18:24) [8]
>
> руками надо писать
> по стандарту значащими считаются все, а не только после
> нулей
Можно ссылку на стандарт?
← →
clickmaker © (2009-01-14 18:35) [11]> [9] Jeer © (14.01.09 18:25)
стандарт де-факто )
← →
clickmaker © (2009-01-14 18:39) [12]> [10] Гек (14.01.09 18:33)
а не имею в виду научные стандарты. Я про функции дельфи: им можно указать общее число цифр, всего и после запятой
← →
Jeer © (2009-01-14 18:41) [13]
> Гек (14.01.09 18:33) [10]
>
>
> > clickmaker © (14.01.09 18:24) [8]
> >
> > руками надо писать
> > по стандарту значащими считаются все, а не только после
> > нулей
>
>
> Можно ссылку на стандарт?
Арифметика в десятичных цифрах вроде как из Индии пришла.
Послать ?
Ну а уж позиционную вообще придумали то ли шумеры, то ли вавилоняне.
Послать ?
← →
Гек (2009-01-14 18:44) [14]
> clickmaker © (14.01.09 18:39) [12]
>
> > [10] Гек (14.01.09 18:33)
>
> а не имею в виду научные стандарты. Я про функции дельфи:
> им можно указать общее число цифр, всего и после запятой
Это я знаю. Но хочется, именно математический стандарт.
Поискал в исходниках Дельфи - вроде нету. Или может называется как-то по-другому?
← →
Denis__ © (2009-01-14 18:48) [15]Не кажется, что искать в "исходниках Дельфи" математические стандарты - по меньшей мере глупо?
← →
Гек (2009-01-14 19:18) [16]Пытаюсь написать функцию. Сложно.
← →
Сергей М. © (2009-01-14 19:32) [17]
> a = 0.000000000123457
> a.toPrecision(2) даёт 0.00000000012
Это пример того что имеется по факту.
А где пример того что тебе требуется пр указанном тобой a ?
← →
Гек (2009-01-14 20:03) [18]
> Сергей М. © (14.01.09 19:32) [17]
>
>
> > a = 0.000000000123457
> > a.toPrecision(2) даёт 0.00000000012
>
>
> Это пример того что имеется по факту.
> А где пример того что тебе требуется пр указанном тобой
> a ?
Что именно непонятно?
← →
Сергей М. © (2009-01-14 20:17) [19]
> Гек (14.01.09 20:03) [18]
> Что именно непонятно?
Непонятно где здесь значащие, а где незначащие "цифры".
И еще непонятно, с каких пор значащими стали "цифры", если со времен ЦГ значащими были разряды
← →
Гек (2009-01-14 21:39) [20]
> Сергей М. © (14.01.09 20:17) [19]
>
>
> > Гек (14.01.09 20:03) [18]
>
>
> > Что именно непонятно?
>
>
> Непонятно где здесь значащие, а где незначащие "цифры".
Значит надо сперва школу кончить.
← →
Jeer © (2009-01-14 23:16) [21]
> Гек (14.01.09 21:39) [20]
> Значит надо сперва школу кончить.
Похвально такое старание, одобряем-с.
Некоторым, впрочем, не мешает туда заново поступить.
Соболезную, но придется пройти путь до конца.
← →
Чук (2009-01-14 23:28) [22]function OrderOf(X: Double): Integer;
var absX: Double;
begin
absX := Abs(X);
if X = 0 then
Result := 0
else if absX >= 1 then
Result := -Trunc(-Ln(absX)/Ln(10))
else
Result := -Trunc(-Ln(absX)/Ln(10))-1;
end;
function ToPrecision(X :Double; N: Integer): Double;
var ord: Integer;
begin
if N < 1 then
begin
Result := X;
Exit;
end;
ord := OrderOf(X);
Result := RoundTo(X, ord-N+1);
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c