![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola, la explicacion anterior fue bastante pobre...
Hice esta funcion que por los resultados que me dio parece funcionar: Le tendrias que hacer algunos retoques. No se que resultado queres cuando el numero es, por ejemplo 2,43 o 2,47. Espero que te sirva.. Bytes... |
|
#2
|
|||
|
|||
|
Hola yo tambien estaba en esas hasta que encontre esta función
FloatToStrF() la siguiente pagina explica su funcionamiento un poco mejor que en la ayuda de Delphi http://www.delphibasics.co.uk/RTL.asp?Name=FloatToStrF yo lo use de la sig manera: FloatToStrF(sueldo,ffCurrency,8,2); lo que hace es que con la variable "sueldo" que es Double la formateas como moneda, el 8 es la precision y el 2 son los decimales que deseas y te manda la variable con todo y signo de pesos. Ademas trae otros formatos como: ffCurrency ffExponent ffFixed ffGeneral ffNumber Espero te sirva. |
|
#3
|
|||
|
|||
|
Tambien esta la funcion FormatFloat..
|
|
#4
|
||||
|
||||
|
Perdón por la demora
Cita:
Uy, la cantidad de mensajes que me perdí. Antes que nada, debo agradecer la función que me pasó Sotrono. La verdad me vino de maravillas. Le hice algunas modificaciones. La función Redondear la saqué y usé RoundTo, ya que hace lo mismo. Y después le arreglé un pequeño error, que se producía cuando el número a redondear no tenía decimales. Lo solucioné preguntando si Pos(',', num) era distinto de cero. Aparentemente ahora funciona 10 puntos. Ahí va el código: Código:
function TForm1.RedondearPesos(var Numero: Real): Real;
var
num: string;
i: integer;
begin
numero:= RoundTo(numero, -2);
num:= FloatToStr(numero);
if (Pos(',', num)) <> 0 then
for i:= Length(num) downto (Pos(',', num) + 2) do
if (num[i] = '3') or (num[i] = '4') or (num[i] = '6') then
num[i]:= '5'
else if (num[i] = '1') or (num[i]= '2') then
num[i]:= '0'
else if (num[i]='7') or (num[i] = '8') or (num[i] = '9') then
begin
numero:= RoundTo(numero, -1);
num:= FloatToStr(numero);
end;
Result:= StrToFloat(num);
end;
ahora voy a probar todas las otras posibilidades. Igualmente, el problema ya está solucionado. Pero nunca viene de más aprender un poco. Agradezco de nuevo la ayuda de todos. Un saludo.
__________________
https://www.youtube.com/DexterBass |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|