Path: news.mathworks.com!not-for-mail From: "Julio Gonzalez" <julio@part-time-scientists.com> Newsgroups: comp.soft-sys.matlab Subject: Re: While loop fails Date: Sat, 22 Oct 2011 01:15:30 +0000 (UTC) Organization: Part Time Scientists Lines: 47 Message-ID: <j7t5fi$53$1@newscl01ah.mathworks.com> References: <j7sh2e$q77$1@newscl01ah.mathworks.com> <j7siql$37t$1@newscl01ah.mathworks.com> Reply-To: "Julio Gonzalez" <julio@part-time-scientists.com> NNTP-Posting-Host: www-01-blr.mathworks.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: newscl01ah.mathworks.com 1319246130 163 172.30.248.46 (22 Oct 2011 01:15:30 GMT) X-Complaints-To: news@mathworks.com NNTP-Posting-Date: Sat, 22 Oct 2011 01:15:30 +0000 (UTC) X-Newsreader: MATLAB Central Newsreader 1429082 Xref: news.mathworks.com comp.soft-sys.matlab:746750 "ScottB" wrote in message <j7siql$37t$1@newscl01ah.mathworks.com>... > "Julio Gonzalez" <julio@part-time-scientists.com> wrote in message <j7sh2e$q77$1@newscl01ah.mathworks.com>... > > I am trying to get a while loop to work. I have an integer T, that I converted to double using the function double. But when I print the value of double T, it shows T as an integer and not as a double. Therefore my loop fails. This is the code: > > > > Ti=2 > > T = double(T); > > to= 0.0000; > > > > while (T<=to) > > to = to+0.1; > > %some code here..... > > end > > > > the loop end at to=2.0000; it should end at 2.1000 > > > > Is there any other way to fix this problems besides T=2*(1+eps)? > > > > Regards > > > > Julio > > University of Liverpool > > Julio, > > T is a double already. I think your example is supposed to look like this: > > T=2 > to= 0.0000; > > while (to<=T) > to = to+0.1 > %some code here..... > end > > The loop stops when to = 2. What are you trying to do? > > ScottB Hi Scott, It is a simple while loop. T is integer equal to 2; "to" increments 0.1 on each pass of the loop until it reaches 2.0. It works while (to<2). But it fails in the checking when to = T = 2. If I print T, I can see only the number "2"... No decimal point. I can not make T double even if I explicitly makes it double. But if I apply T = 2*(1+eps) then I can see now T= 2.0000 and the while loop terminates correctly... Julio