Inscrições abertas para nosso Webinar anual Adianti Framework 2024!
Clique aqui para saber mais
Erro em cálculos com vírgula Buenas meu povo. Estou tentando fazer um calculo na tela em anexo... mas esta acontecendo algo bizarro (vide imagem em anexo , note no total e o valores que foram somados), ja tentei formatando os decimais com . com , e o resultado é o mesmo... esse ERRO.... alguém sabe o que pode ser ? trecho que efetua o calculo ...
FM
Erro em cálculos com vírgula  
Fechado
Buenas meu povo. Estou tentando fazer um calculo na tela em anexo... mas esta acontecendo algo bizarro (vide imagem em anexo , note no total e o valores que foram somados), ja tentei formatando os decimais com . com , e o resultado é o mesmo... esse ERRO.... alguém sabe o que pode ser ?

trecho que efetua o calculo

  1. <?php
  2. function onReload($param NULL)
  3.     {
  4.         try
  5.         {
  6.             $tolete 0.00;
  7.             $this->cartgrid->clear(); // clear datagrid
  8.             $items TSession::getValue('items');
  9.             if ($items)
  10.             {
  11.                 foreach ($items as $object)
  12.                 {
  13.                     // add the item inside the datagrid
  14.                     $this->cartgrid->addItem($object);
  15.                     $tolete += $object->total;
  16.                 }
  17.             }
  18.             $this->gototal->setValue('<font color = blue><b><h3>'.$tolete.'</h3></b></font>');
  19.             $this->loaded true;
  20.         }
  21.         catch (Exception $e// in case of exception
  22.         {
  23.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  24.         }
  25.     }
  26. ?>


ante que alguem fale... o nome da variavel é TOLETE mesmo... e eu ja iniciei ela valeno 0 (zero), e o erro é o mesmo !!!

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (9)


FM

a raiva causou esses erros de português:

ANTES que alguém fale... o nome da variável é TOLETE mesmo... e eu já iniciei ela valendo 0 (zero), e o erro é o mesmo !!!
ES

Tente isso:
  1. <?php $tolete += doubleVal($object->total); ?>
FM

valeu Eliezer. vou testar e posto o resultado... vamos ver se o "tolete" vai agora !!! abs.
FM

piorou Eliezer... de uma olhada nesse print ... ficou HORRIVEL... rsssss
complicado o Adianti para lidar com valores monetários. ao inves de ser padronizado para o modo brasileiro, vem todo configurado para o modo americano, data, moeda... TUDO.... é uma pena... o framework é brasileiro, adoro esse framework, adquiri o studio pro, mas esse detalhe é frustrante....

link para a imagem:

pt-br.tinypic.com/view.php?pic=qsjubl&s=8#.ViJcWWSrT6Y
FM

<a href="pt-br.tinypic.com?ref=qsjubl" target="_blank"><img src="i59.tinypic.com/qsjubl.jpg" border="0" alt="Image and video hosting by TinyPic"></a>

[IMG]i59.tinypic.com/qsjubl.jpg[/IMG]

pt-br.tinypic.com/r/qsjubl/8

i59.tinypic.com/qsjubl.jpg
ES

Flávio, vamos começar do zero. É muito difícil ajudar sem ver o restante.
Eu faço cálculos com o framework e não tenho nenhum problema com os resultados.

Primeiro faça um print_r na variável $items pra gente ver como seus valores estão chegando.

Depois partimos para os cálculos.
FM

opa, então vamos la... a tela é do Adianti TUTOR. é o arquivo : POSFormView.class.php

a unica coisa que mudei nele foi isso: no evento onReload inclui as linhas 15 e 18, portanto TODO e qualquer calculo que é efetuado, é algo PADRAO do framework, eu apenas implantei com essas duas linhas, uma soma dos valores dos produtos e uma exibição de tais valores.

  1. <?php
  2. function onReload($param NULL)
  3.     {
  4.         try
  5.         {
  6.             $tolete 0.00;
  7.             $this->cartgrid->clear(); // clear datagrid
  8.             $items TSession::getValue('items');
  9.             if ($items)
  10.             {
  11.                 foreach ($items as $object)
  12.                 {
  13.                     // add the item inside the datagrid
  14.                     $this->cartgrid->addItem($object);
  15.                     $tolete += $object->total;
  16.                 }
  17.             }
  18.             $this->gototal->setValue('<font color = blue><b><h3>'.$tolete.'</h3></b></font>');
  19.             $this->loaded true;
  20.         }
  21.         catch (Exception $e// in case of exception
  22.         {
  23.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  24.         }
  25.     }
  26. ?>
AA

Olá, na linha 15, quando vc soma os valores tem que tratar ele antes de somar.

Tente assim:
  1. <?php
  2. $tolete += str_replace(','''$object->total);
  3. ?>
FM

ai é bonito hein Anderson Andrade... eu certinho agora. Muito obrigado pela ajuda a todos. Eis o resultado:

imageshack.com/a/img912/5918/wzzoQb.png

um problema a menos... vamos nessa! Abs a todos.