Показать сообщение отдельно
Старый 01.01.2007, 16:49   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Приближение числа

Function Get_approach2#(x#,eps%)
	Local res#,vLEFT#,vRIGHT#
	Local temp#=10^eps
	Local x_s#=Int(x*temp)/temp
	Local mzr%=x*temp-Int(x*(10^(eps-1)))*10
	Local flag%=mzr Mod 2
	vLEFT=x_s+flag*10^(-eps)
	vRIGHT=x_s+flag*10^(-eps)
	If Abs(x-vLEFT)<Abs(x-vRIGHT)
		res=vLEFT
	Else
		res=vRIGHT
	EndIf
	Return res
End Function
Get_approach2# возвращает ближайшее приближенное чётное число от аргумента x# с числом знаков после запятой eps%

Function Get_approach#(x#,eps%)

	Local res#
	Local temp#=10^(eps+1)
	Local x_s#=Int(x*temp)/temp
	Local mzr%=x*temp-Int(x*(10^(eps)))*10
	
	temp#=10^(eps)
	res=Int(x*temp)/temp
	If mzr>=5
		res=res+10^(-eps)
	EndIf

	Return res
End Function
Get_approach# возвращет приближенное (не обрубленное) число от аргумента x# с числом знаков после запятой eps%
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием