Decimal separator in currency field (not a comma)

Home Forums General discussion Decimal separator in currency field (not a comma)

Viewing 7 reply threads
  • Author
    Posts
    • #22957
      Ayanda Makhathini
      Participant

        Hi there

        I have a form which does simple calculations but the issue I’m having is with the currency field not having comma’s instead of fullstops(dots). I’m using a CCDD (Cascading drop down) to select the product which selects the price field from the lookup list which is of type currency but returns it in the current list as single line ,I then have a h_price field that is of type currency which is set with a dot in it . There are numbers in the fields but the form wont save unless i change dots to commas. I’m also using (calc:) in rules to set the correct values, Can someone point me in the right direction for the solution of this

        Attachments:
      • #22960
        Alexander Bautz
        Keymaster

          The problem is that the field value pulled from the db by the query is returned as a number with dot as decimal separator. If you need to use this number in a currency or number fields and your locale number format expects a comma you must replace the dot with a comma. How are you setting the value in the hidden fields?

          Alexander

        • #22965
          Ayanda Makhathini
          Participant

            hi Alex

            I’m using the the CCDD to select the product from another list which selects the price in the lookup list which is a currency field. I’m using a DFFS rule in the current list to set the h_price field which is a currency field. I’m trying to use a Custom JS function to change decimals to comma’s when the field changes but my syntax is not that great

          • #22968
            Ayanda Makhathini
            Participant

              Hi Alex

              I also noticed that my calculations are not rounding off to 2 decimal places. I have the value 6118.43 pulling in as 6118.425 on the form. When I calculate (value) x (quantity) = (6118.425 x 2 = 12236850) . After that I calculate VAT and Total excluding VAT (VAT=15%). Amount including VAT is 14072.37 but i get 14072377.5 which will save as 14 Million if i replace comma. Would adding a custom function to round off solve the issue or is there a shorter way around it. I managed to remove decimals and replace them with commas but this wont if I’m rounding off to wrong decimal place. I currently have my calculations set in the DFFS rules. Amount exluding VAT = calc:{h_price}*{Quantity} , Total including VAT – calc:{Amount}*0.15+{Amount} . I think my main issue is to round off now

              regards

              Attachments:
            • #22973
              Alexander Bautz
              Keymaster

                You have better control is you use a custom function to do the calculation. Here is an example you can call from a rule (in the Run these functions field):

                function doMyCalculation(){
                    var a = getFieldValue("FieldInternalName1");
                    var b = getFieldValue("FieldInternalName2");
                    // Do the calculation
                    var c = a * b;
                    // Truncate to two decimals
                    var d = c.toFixed(2);
                    // Replace . with ,
                    var e = String(d).replace(".",",");
                    // Write to another field
                    setFieldValue("TargetFieldInternalName",e);
                }

                Alexander

              • #22991
                Ayanda Makhathini
                Participant

                  Hi Alex

                  Thank you for the function it works.The calculation,rounding off and replace comma works well but i noticed that I’m losing couple cents if I dont round off the value of the item which isn’t rounded off when i get it from look up list, I’m using the function below to get the value(hprice) and try using the toFixed(2) but i get a error. Not sure yet but also working on it.

                  function convertprice()
                  {
                  var hPrice = getFieldValue(“h_price”);

                  var priceValueFixed = hPrice.toFixed(2);

                  setFieldValue(“h_price”,priceValueFixed);

                  }

                  Regards

                  Attachments:
                • #22996
                  Alexander Bautz
                  Keymaster

                    The function toFixed only works with numbers and the value you get from getFieldValue is string and not number. You can convert it like this:

                    function convertprice(){
                      var hPrice = getFieldValue("h_price");
                      if(hPrice !== ""){
                        var priceValueFixed = Number(hPrice).toFixed(2);
                        setFieldValue("h_price",priceValueFixed);
                      }
                    }

                    You might want to change the toFixed method with Math.round like this:

                    var priceValueFixed = Math.round(Number(hPrice) * 100) / 100;

                    Alexander

                  • #23112
                    Ayanda Makhathini
                    Participant

                      Hi Alex

                      I used var price = parseFloat(getFieldValue(“Price”)).toFixed(2); to convert to number then i did calculations then converted to string with comma, You helped me alot. Thank you very much

                      Regards
                      Mak

                  Viewing 7 reply threads
                  • You must be logged in to reply to this topic.