This topic is locked

Calculate With Decimal Separator

5/5/2013 6:52:35 PM
PHPRunner General questions
O
onlline author

Calculate values ​​on the fly does not work with decimal separator
I tried and did not work
-----------------------------------------------------------------------------------------------------------------------------------------------

var ctrlPrice = Runner.getControl(pageid, 'Price');

var ctrlQuantity = Runner.getControl(pageid, 'Quantity');

var ctrlTotal = Runner.getControl(pageid, 'Total');
function func() {

if ( ctrlPrice.getValue()!='' && ctrlQuantity.getValue() && !isNaN(ctrlPrice.getValue()) && !isNaN(ctrlQuantity.getValue()))

ctrlTotal.setValue(parseFloat(ctrlPrice.getValue().replace(",", ".")) * parseFloat(ctrlQuantity.getValue().replace(",", ".")));

else

ctrlTotal.setValue('');

};
ctrlPrice.on('keyup', func);

ctrlQuantity.on('keyup', func);
---------------------------------------------------------------------------------------------------------------------------------------------
In Brazil we use decimal separators
Example

R$ 100.000,00
Thanks in advanced

Sergey Kornilov admin 5/6/2013

You need to use dot a decimal separator and no commas.
If your application is for Brazil only you can replace commas with dots before applying your calculations.

O
onlline author 5/6/2013



You need to use dot a decimal separator and no commas.
If your application is for Brazil only you can replace commas with dots before applying your calculations.


I tried with the code does not work
function func() {

if ( ctrlPrice.getValue()!='' && ctrlQuantity.getValue() && !isNaN(ctrlPrice.getValue()) && !isNaN(ctrlQuantity.getValue()))

ctrlTotal.setValue(parseFloat(ctrlPrice.getValue().replace(",", ".")) * parseFloat(ctrlQuantity.getValue().replace(",", ".")));

else

ctrlTotal.setValue('');

};

J
joiresende 5/11/2013

Leonardo, boa noite

Também tive o mesmo problema que você, pois as pessoas quando iam digitar digitavam a vírgula e resolvi da seguinte maneira para evitar que digitem a virgula.
mudei os campos no banco de dados para decimal 16,2

adicionei o código abaixo no add página no javascript onload event

{

$("#valueValor"+pageid).maskMoney({thousands:'', decimal:'.'});

}
Agora em list page escolha o campo como moeda, ai oresultado que aparece será em real com virgula e duas casas decimais.
João

O
onlline author 5/11/2013



Leonardo, boa noite

Também tive o mesmo problema que você, pois as pessoas quando iam digitar digitavam a vírgula e resolvi da seguinte maneira para evitar que digitem a virgula.
mudei os campos no banco de dados para decimal 16,2

adicionei o código abaixo no add página no javascript onload event

{

$("#valueValor"+pageid).maskMoney({thousands:'', decimal:'.'});

}
Agora em list page escolha o campo como moeda, ai oresultado que aparece será em real com virgula e duas casas decimais.
João


Oi João!
Obrigado pela ajuda mas quando digito um valor grande como 1111111.11 os usuários questionam que fica difícil de inicio saber o valor que ele esta digitando
Obrigado pela atenção.

J
joiresende 5/11/2013

Você chegou a testar essa funcionalidade?

se não dê uma olhada neste site. link abaixo:

http://plentz.github.io/jquery-maskmoney/

João

O
onlline author 5/13/2013



Você chegou a testar essa funcionalidade?

se não dê uma olhada neste site. link abaixo:

http://plentz.github.io/jquery-maskmoney/

João


OI! tentei a soma para de funcionar .
Obrigado pela atenção