<div dir="ltr">Hola Vicente,<br><div class="gmail_extra"><br><div class="gmail_quote">2013/2/4 vicente lozano <span dir="ltr"><<a href="mailto:vicentelozano@gmail.com" target="_blank">vicentelozano@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div>Hola tengo una duda sobre las conversiones a flotante en C++.<br>
<br></div>En un codigo que estoy revisando aparece:<br><br></div>for (int i=0,....){<br>....<br></div> vector3 a=vector3(if,....)<br>
...<br>}<br><br></div>if no esta declarado y vector3 recibe 3 floats como parametros.<br><br>Asi que mi duda es:<br></div>- Se puede poner el nombre de una variable seguido de una f en plan casting como con las constantes. (Equivalente a (float) i)<br>

</div>- Es pseudocodigo indicando precisamente eso.<br><br></div></div></blockquote><div><br></div><div style>En primer lugar, no creo que el código original sea 'if'. Posiblemente, habría sido:<br><br><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">vector3 a = vector3( 1f, ... );</span><br>
</div><div><br></div><div style>Es decir, un uno como valor literal de tipo 'float', al usar el sufijo 'f'.</div><div><br></div><div style>No puede ser 'if', porque el compilador daría un error al intentar usar el vocablo 'if', cuando espera una expresión. Además, si fuere el nombre de una variable, tampoco podríamos usar 'if', porque no podemos crear nombres (identificadores) que coincidan con los nombres de vocablos de C++. Esto provocaría más problemas que aportar soluciones.</div>
<div><br></div><div style>Sólo puedes usar los sufijos con valores literales. No tendría sentido agregar un carácter al final de una cadena de caracteres para indicar su tipo, ya que sería difícil distinguir el sufijo del nombre original. Por ejemplo,</div>
<div style><br></div><div>int precio = 1;</div><div style>int preciof = 10;</div><div style><br></div><div style>cout << preciof;</div><div style><br></div><div style>¿Nos referimos a 'preciof' o a 'precio', pero de tipo 'float'? Es imposible saberlo, así que ni falta hace que lo intentemos.</div>
<div style><br></div><div style>Si necesitas hacer un cásting a 'float', entonces hazlo explícitamente:<br><br><div>cout << (float)precio;</div><div><br></div><div style>O de la forma "más C++":<br>
<br></div><div style><div>cout << static_cast<float>(precio);</div><div><br></div></div></div><div><br></div><div style>Espero haber aclarado la duda.</div><div><br></div><div style>Steven</div><div style><br>
</div></div></div></div>