I have a sum that works out any chosen percentage discount (percentage1.text) of a selected product (status2_txt.text). I've managed to get the value to display just 2 decimal points but it looses its trailing zeros, pulling my hair out!
This is what I currently have:
total_btn3.addEventListener(MouseEvent.CLICK, getTotal3);
function getTotal3(e:MouseEvent):void {
discount1.text = String( Number(status2_txt.text) / Number(100) * Number(percentage1.text));
discount1.text = int((discount1.text)*100)/100;
}
I'd appreciate any help with this!
Thanks
Try function toFixed.
var ret:Number = Number(status2_txt.text) / 100 * Number(percentage1.text);
discount1.text = ret.toFixed(2);
Related
Hi I am trying to include Variance in my SSRS matrix for Percentages on a month by month basis.
This is what I want to achieve:
the expression I am trying to use which I have got from a forum is as follows:
=ReportItems!Textbox15.Value - Code.GetPreviousValue(ReportItems!Textbox15.Value)
And this references custom code again from the same forum as follows:
Private previousValue As Integer = 0
Public Function GetPreviousValue(ByVal runningValue) As Integer
Dim temp As Integer = previousValue
previousValue = runningValue
Return temp
End Function
My issue is this does not work for the variance between April and May for example giving me results that are incorrect.
To be clear April% and May% figures are correct but the variances do not appear as in my example. When I check them they are incorrect.
If I alter the (variance) query so instead of taking the query that calculates the % I just calculate variance between the numerator of April% and numerator of May%, variances are correct.
I think the issue is that percentages don't go through the custom code portion correctly. Could this be due to the fact that this works according to INT?
I appreciate this may be as clear as mud... Struggling a bit to explain my problem. Thanks
Yes the integer makes the problem, because you have values with dots (97.3, 91.8, etc...). When these values get converted to integer, they lose the right decimal places. Just replace the datatype in your function like this:
Private previousValue As Double = 0
Public Function GetPreviousValue(ByVal runningValue) As Double
Dim temp As Double = previousValue
previousValue = runningValue
Return temp
End Function
In SSRS expression i need to round any number after division to whole minor number:
I mean: Round(2.2) = 2; ROUND(2.5) = 2; ROUND(2.8) = 2
There is any option to Round function to achieve that?
The Fix function will do this, it returns the integer portion of the number. eg
Fix(2.2)
which will return 2, or
Fix(2.7)
which will also return 2.
I have created an HTML web app in google script this works like a calculator, This app works fine if I add the input in descending order however if I skip the order and update in put data numbers randomly in any column then I am not getting the output properly
Example:- update the numbers in box number 4 and 5 then update in box number 1 you will find the differences in total numbers
Please refer the attached sheet for detailed script
Project Name- Project Proposal Form
$("#rTpe1").keyup(function(e){
$("#rFor1").val(this.value * $("#PerHourRate1").val());
$("#rFor3").val( Number($("#rFor1").val()) +Number($("#rFor2").val()))
});
$("#rTpe2").keyup(function(e){
$("#rFor2").val(this.value * $("#PerHourRate2").val());
$("#rFor3").val( Number($("#rFor1").val()) + Number($("#rFor2").val()))
});
$("#rTpe12").keyup(function(e){
$("#rFor12").val(this.value * $("#PerHourRate3").val());
$("#rFor3").val( Number($("#rFor1").val()) + Number($("#rFor2").val())+ Number($("#rFor12").val()))
});
$("#rTpe13").keyup(function(e){
$("#rFor13").val(this.value * $("#PerHourRate4").val());
$("#rFor3").val( Number($("#rFor1").val()) + Number($("#rFor2").val())+ Number($("#rFor12").val())+ Number($("#rFor13").val()))
});
I could be wrong, but I think that's the main culprit:
If your work your way top to bottom, the output in '#rFor3' is not affected. For example, if you enter values in the first field ('#rTpe1'), this statement
Number($("#rFor2").val()))
will evaluate to '0' because '#rFor2' probably contains an empty string at this point and Number("") will get you a zero. Because all subsequent input fields reference the results of previous calculations ('rTpe2' references 'rFor1', 'rTpe12' references both 'rFor1' and 'rFor2', etc), the sum will come out as correct.
Now consider the reverse scenario. For simplicity, let's make all your rates equal to 1. If you enter the value of '5' into 'rTpe12', the value of 'rFor3' will be
Number("") + Number("") + Number(5*1) == 5; //the first two inputs will contain empty strings at this point
The output of '#rFor3' would be 5. If you go up a step and enter the value of '2' into 'rTpe2', the value of the 'rFor3' output will change to
Number("") + Number(2*1) == 2; the first input will contain an empty string.
The code is not easy to understand, so even if this solution doesn't work for you, consider caching your DOM elements to improve performance and make your code more readable. Currently, you are using jQuery selectors to search the DOM over and over again, which is a serious performance drag. You could also store your calculated value as a variable and simply add values to it instead of recalculating on each input. For example
$('document').ready(function(){
var total = 0;
var input1 = $('#input1');
var input2 = $('#input1');
var input3 = $('#input1');
var output = $('#output');
input1.keyup(function(e){
var value = Number(this.value);
sum += value;
output.val(sum);
});
});
I'm making a tax calculator for my class and I can't figure out how to multiply a whole number with a decimal. I have to multiply the whole by 0.13. Here's my code
var amount:Number;
var hst:int;
amount_txt.restrict = "0-9";
calculate_btn.addEventListener(MouseEvent.CLICK, calculate);
function calculate(event:MouseEvent):void
{
amount = Number(amount_txt.text);
total_txt.text = "You have spent a total of " + String(Math.round((amount * hst)) + "$")
}
I would appreciate help quick, as it is due tomorrow. I apologize if the formatting on here is incorrect, but I assure you on the actual program it is correct. Thanks
The reason is that your HST is not a Number but an int. In order to make it a decimal number you have to change it as a Number
var amount:Number;
var hst:Number;
amount_txt.restrict = "0-9";
calculate_btn.addEventListener(MouseEvent.CLICK, calculate);
function calculate(event:MouseEvent):void
{
amount = Number(amount_txt.text);
total_txt.text = "You have spent a total of " + String(Math.round((amount *hst)) + "$")
}
when i am calculating like given below in SSRS 2008
=SUM(IIF(Fields!REMARKS.Value = "GOOD",1,0))/((SUM(IIF(Fields!REMARKS.Value = "GOOD",1,0))+ SUM(IIF(Fields!REMARKS.Value = "BAD",1,0))))*100
getting result like 34.9632565235
but i am trying to get result like 34.97%
Please share your expertise.
Thanks
Try:
=FORMAT(
SUM(IIF(Fields!REMARKS.Value = "GOOD",1,0))/
((SUM(IIF(Fields!REMARKS.Value = "GOOD",1,0)) +
SUM(IIF(Fields!REMARKS.Value = "BAD",1,0)))),"P2")
Or you can use a custom string format:
=FORMAT(
SUM(IIF(Fields!REMARKS.Value = "GOOD",1,0)) /
((SUM(IIF(Fields!REMARKS.Value = "GOOD",1,0)) +
SUM(IIF(Fields!REMARKS.Value = "BAD",1,0)))*100)
,"0.00") & "%"
Let me know if this helps.
You can also use the Round function in your expression. With this function =ROUND(..., 1) you will have one number after the decimal point. If you want two numbers after the decimal point then enter 2, and so on. (So you need 2).
Also check the link : Percentage SSRS
Where the example is used :
=Round(((SUM(Fields!FirstCallResolution.Value) / COUNT(Fields!CommunicationId.Value)) * 100),1)