Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизОбрезать число Найти похожие ветки
← →
snake-as © (2008-04-26 13:36) [0]Здравствуйте, подскажите, пожалуйста, как "обрезать" число. Т.е. вместо 0.999999 получить, например 0.99.. Только именно обрезать, а не округлить.. Спасибо заранее..
← →
Denis__ © (2008-04-26 13:39) [1]IntToStr(Copy(StrToInt(x),1,3));
Как то так.
← →
Denis__ © (2008-04-26 13:40) [2]то есть шучу:) Устал
StrToFloat(Copy(FloatToStr(x),1,3))
Вот как-то так
← →
Восхищенный (2008-04-26 13:40) [3]Какого типа результат нужен - строка или число?
← →
ПостОвый терминатор © (2008-04-26 13:42) [4]>Denis__ © (26.04.08 13:39) [1]
Странно, где ты здесь увидел Int?
← →
Anatoly Podgoretsky © (2008-04-26 13:42) [5]Только строка, поскольку таких чисел не существует в процессоре
← →
snake-as © (2008-04-26 13:43) [6]Число..
← →
snake-as © (2008-04-26 13:44) [7]Не понял, в смысле не существует?
← →
ПостОвый терминатор © (2008-04-26 13:45) [8]>snake-as © (26.04.08 13:43) [6]
Преведи сначала в строку, а затем в число.
← →
Anatoly Podgoretsky © (2008-04-26 13:47) [9]> snake-as (26.04.2008 13:43:06) [6]
Забудь или переходи на BCD
← →
snake-as © (2008-04-26 13:47) [10]Да, теперь понял.. Немного туплю просто.. Ну все равно спасибо всем!
← →
ага (2008-04-26 13:48) [11]
> Anatoly Podgoretsky © (26.04.08 13:42) [5]
>
> Только строка, поскольку таких чисел не существует в процессоре
Эээ.... в каком смысле?
> snake-as © (26.04.08 13:36)
uses math
function roundto
← →
sniknik © (2008-04-26 13:48) [12]> Забудь или переходи на BCD
денежный тип... тоже подойдет.
← →
Восхищенный (2008-04-26 13:49) [13]> Denis__ © (26.04.08 13:40) [2]
Больше так не шути. И советов таких не давай. Это ж надо такое придумать - перегонять число в число через строку. Из Тулы в Рязань через Камчатку.
> snake-as © (26.04.08 13:43) [6]
Например, так: X := Int(Х * 100) / 100.
Но не со всяким числом это получится, имей в виду. Общего решения тут нет, потому что многие десятичные числа в двоичном виде дают бесконечную дробь.
← →
Anatoly Podgoretsky © (2008-04-26 13:52) [14]> sniknik (26.04.2008 13:48:12) [12]
Денежный тип это разновидность BCD, только ограниченая, всегда 4 знака после запятой. Там можно представить и ,9900 и ,9999
← →
Denis__ © (2008-04-26 13:53) [15]Всё нормально будет работать.С лубыми числами. А не
> Но не со всяким числом это получится, имей в виду. Общего
> решения тут нет, потому что многие десятичные числа в двоичном
> виде дают бесконечную дробь.
← →
ага (2008-04-26 13:55) [16][11] и еще SetDefaultCW - и всех делов...
← →
ага (2008-04-26 13:58) [17]
> Denis__ © (26.04.08 13:53) [15]
>
> Всё нормально будет работать.С лубыми числами. А не
Нет уж :) А как быть с 2,999E+22 например ?
← →
sniknik © (2008-04-26 13:59) [18]> Всё нормально будет работать.С лубыми числами. А не
поосторожнее с "обещаниями для всех" ("лубыми")var
s: single;
begin
s:= 0.1;
ShowMessage(FloatToStr(s));
end;
что видиш при выполнении?
← →
Denis__ © (2008-04-26 14:08) [19]Ничего не вижу. Дэлфи под рукой нет. Но всё должно работать, в чём я не прав? и проверку сделать - если число меньше 0.001 то вернуть 0 и всё.
← →
{RASkov} © (2008-04-26 14:16) [20]> [19] Denis__ © (26.04.08 14:08)
> в чём я не прав?
Потому как через зад делаешь... Хоть это и тоже результат, ...но ты согласишься на операцию с гландами тебе, с такимиже понятиями как и у тебя, доктором? ;)
← →
Восхищенный (2008-04-26 14:16) [21]> Denis__ © (26.04.08 14:08) [19]
> В чём я не прав?
Не в том, что не знаешь особенностей машинной арифметики вещественных чисел. А в том, что споришь о том, чего не знаешь.
← →
{RASkov} © (2008-04-26 14:25) [22]> [19] Denis__ © (26.04.08 14:08)
> в чём я не прав?
И кстати как вариант твоей неправоты:
С Copy можешь "обломаться" с таким подходом... хоть это и не относиться к твоему "коду" в [2] но если посмотришь [18] то наверное поймешь о чем я...
← →
Anatoly Podgoretsky © (2008-04-26 19:13) [23]> Восхищенный (26.04.2008 14:16:21) [21]
Ну мы то знаем, как такие называются. Что то с войной связаное.
← →
korneley © (2008-04-26 22:38) [24]
>...Что то с войной связаное.
"Brothers in arms" (c) Mark Knopfler
← →
Amoeba © (2008-04-26 22:48) [25]Автору вопроса читать до полного просветления:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
← →
Denis__ © (2008-04-27 10:26) [26]
> {RASkov} © (26.04.08 14:25) [22]
Да, согласен, спасибо. Но в школах именно так учат. Причём, как учат делать через зад, так и учат через зад:) Ну да это лирика. Тогда интересует вопрос, как сделать, чтобы работало всегда?
← →
{RASkov} © (2008-04-27 10:40) [27]> [26] Denis__ © (27.04.08 10:26)
> как сделать, чтобы работало всегда?
Я думаю, что наверное только на бумажке карандашом можно всегда точно нарисовать вещественное число.... хотя.... может и ошибаюсь...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.007 c