<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[float auf gültigkeit prüfen]]></title><description><![CDATA[<p>hallo nochmals.</p>
<p>ich habe mir schnell eine funktion geschrieben, die überprüft, ob ein float in string form gültig ist. gerne würde ich eure meinung zur funktion wissen:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
bool IsFloat(String input)
{
	if(input.Length() &lt;= 0) return false;
	else
	{
		bool dot_found = false;
		if(!IsNumericSymbol(input[1]) || !IsNumericSymbol(input[input.Length()])) return false;
		for(int i = 1; i &lt;= input.Length(); i++)
		{
			if(!IsNumericSymbol(input[i]) &amp;&amp; input[i] != '.' || input[i] == '.' &amp;&amp; dot_found) return false;
			if(input[i] == '.') dot_found = true;
		}
	}
	return true;
}
</code></pre>
<p>ich möchte damit nur sicherstellen das es die form vorzahlen_punkt_nachkommastellen hat. ist die funktion dafür gut geschrieben?</p>
<p>p.s. die funktion IsNumericSymbol ist hier nicht ersichtlich. sie überprüft aber auch nur ob das zeichen 0-9 ist. danke für eure meinung.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230835/float-auf-gültigkeit-prüfen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 04:08:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230835.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Jan 2009 17:06:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to float auf gültigkeit prüfen on Fri, 02 Jan 2009 17:06:13 GMT]]></title><description><![CDATA[<p>hallo nochmals.</p>
<p>ich habe mir schnell eine funktion geschrieben, die überprüft, ob ein float in string form gültig ist. gerne würde ich eure meinung zur funktion wissen:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
bool IsFloat(String input)
{
	if(input.Length() &lt;= 0) return false;
	else
	{
		bool dot_found = false;
		if(!IsNumericSymbol(input[1]) || !IsNumericSymbol(input[input.Length()])) return false;
		for(int i = 1; i &lt;= input.Length(); i++)
		{
			if(!IsNumericSymbol(input[i]) &amp;&amp; input[i] != '.' || input[i] == '.' &amp;&amp; dot_found) return false;
			if(input[i] == '.') dot_found = true;
		}
	}
	return true;
}
</code></pre>
<p>ich möchte damit nur sicherstellen das es die form vorzahlen_punkt_nachkommastellen hat. ist die funktion dafür gut geschrieben?</p>
<p>p.s. die funktion IsNumericSymbol ist hier nicht ersichtlich. sie überprüft aber auch nur ob das zeichen 0-9 ist. danke für eure meinung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638460</guid><dc:creator><![CDATA[forken]]></dc:creator><pubDate>Fri, 02 Jan 2009 17:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to float auf gültigkeit prüfen on Fri, 02 Jan 2009 17:12:43 GMT]]></title><description><![CDATA[<p>forken schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(input.Length() &lt;= 0) return false;
	else
</code></pre>
</blockquote>
<p>Wenn du schon early return machst, dann lass das else und die damit verbundene tiefere Schachtelung weg.</p>
<p>Reguläre Ausdrücke willst du nicht verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638462</guid><dc:creator><![CDATA[tzern]]></dc:creator><pubDate>Fri, 02 Jan 2009 17:12:43 GMT</pubDate></item><item><title><![CDATA[Reply to float auf gültigkeit prüfen on Fri, 02 Jan 2009 17:17:21 GMT]]></title><description><![CDATA[<p>tzern schrieb:</p>
<blockquote>
<p>Wenn du schon early return machst, dann lass das else und die damit verbundene tiefere Schachtelung weg.</p>
</blockquote>
<p>stimmt, dass habe ich jetzt völlig übersehen.</p>
<p>tzern schrieb:</p>
<blockquote>
<p>Reguläre Ausdrücke willst du nicht verwenden?</p>
</blockquote>
<p>nein. also ich möchte wirklich nur z.B. das format 123.456, 12.45, 1.2 etc. als gültig sehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638465</guid><dc:creator><![CDATA[forken]]></dc:creator><pubDate>Fri, 02 Jan 2009 17:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to float auf gültigkeit prüfen on Fri, 02 Jan 2009 17:22:37 GMT]]></title><description><![CDATA[<p>mein erster gedanke dazu sieht so aus:</p>
<pre><code class="language-cpp">bool IsFloat(String input) 
{ 
    if(input.Length() &lt;= 0) return false; 
    int dot_pos = -1; 
    for(int i = 1; i &lt;= input.Length(); i++) 
    { 
       if(IsNumericSymbol(input[i]))
          continue;//ziffern sind immer gut
       if(input[i]=='.')
          if(dot_pos==-1)
             dot_pos=i;//der erste punkt
          else
             return false;//der zweite punkt
        } 
    }
    if(dot_pos&lt;1 || dot_pos&gt;input.Length()-1)
       return false;
    return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1638466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638466</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 02 Jan 2009 17:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to float auf gültigkeit prüfen on Fri, 02 Jan 2009 17:30:18 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(input.Length() &lt;= 0) return false;
</code></pre>
<p>==&gt;</p>
<pre><code class="language-cpp">if(input.empty()) return false;
</code></pre>
<p>Ich glaube nicht, dass die Länge einer guten String-Klasse unter 0 sein kann - und für gleich 0 gibt es nun mal empty ^^</p>
<p>bb</p>
<p>edit:<br />
ich würde einen bool für dot nehmen...<br />
auch würde ich keine eingaben á la &quot;.5&quot; verschmähen ^^</p>
<pre><code class="language-cpp">bool IsFloat(String input) 
{ 
    if(input.empty()) return false; 
    bool haveDot = false;
    for(String::SizeType i (0), e(input.Length()); i != e; ++i) 
    { 
       if(IsNumericSymbol(input[i]))
          continue;//ziffern sind immer gut 
       if((input[i]=='.') || (input[i]==',')) //, und . erlauben
       {
          if (haveDot) return false;
          haveDot = true;
       }
    } 
    return true; 
}
</code></pre>
<p>diese variante sollte alles zulassen, was in etwa so aussieht:</p>
<pre><code class="language-cpp">,23       //0,23
.1        //0,1
.         //0
0         //0
12        //12
0.12      //0,12
5,54      //5,54
</code></pre>
<p>NICHT aber so etwas:</p>
<pre><code class="language-cpp">*T*T* //T ist '.' oder ',' - * ist eine beliebige Ziffernfolge (muss aber nicht vorhanden sein)
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638467</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 02 Jan 2009 17:30:18 GMT</pubDate></item></channel></rss>