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

Int(9.70)=10 ?!
такой подставы я вообще не ожидал... А я ещё филосовствовал об излишестве Floor-а...
Короче:
Function Get_approach#(x#,eps%)
	Local res#=Float(Mid(Str(x),1,Len(Str(Int(Floor(x))))+1+eps))
	Local mzr%=Int(Mid(Str(x),Len(Str(Int(Floor(x))))+2+eps,1))

	If mzr>=5
		res=res+10^(-eps)
	EndIf
	Return res
End Function

Function Get_approach2#(x#,eps%)
	Local res#,vLEFT#,vRIGHT#


	Local x_s#=Float(Mid(Str(x),1,Len(Str(Int(Floor(x))))+1+eps))

	Local mzr%=Int(Mid(Str(x),Len(Str(Int(Floor(x))))+1+eps,1))

	
	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
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием