The following warnings occurred:
Warning [2] Use of undefined constant SAPI_NAME - assumed 'SAPI_NAME' (this will throw an Error in a future version of PHP) - Line: 3388 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3388 errorHandler->error
/showthread.php 116 build_archive_link
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/inc/functions.php 3324 build_forum_breadcrumb
/showthread.php 195 build_forum_breadcrumb
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Floats and Percentage
Author Message
Barnabus
Journeyman
*

Posts: 124
Likes Given: 0
Likes Received: 3 in 2 posts
Joined: Apr 2012
Reputation: 1



Post: #1
Floats and Percentage
This is laughable I know.. It works perfect but can anyone tell me what I have done wrong, because I dont think I should be dividing by a million.
Code:
[FUNCTION f_Percentage] //f_Percentage <%>,<WholeNumber>
FLOAT.ValueA=<EVAL <ARGV[0]>>
FLOAT.ValueB=<EVAL <ARGV[1]>>
LOCAL.PercentageChop = <FLOATVAL (<FLOATVAL <FLOAT.ValueA> / 1000000>)>
LOCAL.PercentageCalc = <FLOATVAL (<FLOAT.ValueB> * <LOCAL.PercentageChop>)/10>
LOCAL.BacktoWholeNumber = <EVAL <LOCAL.PercentageCalc>/10>
SAY @Percentage <EVAL <ARGV[0]>> Percent of <EVAL <ARGV[1]>> is <EVAL <LOCAL.BacktoWholeNumber>>
RETURN <EVAL <LOCAL.BacktoWholeNumber>>
10-02-2012 10:10 AM
Find all posts by this user Like Post Quote this message in a reply
Barnabus
Journeyman
*

Posts: 124
Likes Given: 0
Likes Received: 3 in 2 posts
Joined: Apr 2012
Reputation: 1



Post: #2
RE: Floats and Percentage
DarkSun Pointed out ***

If <ARVGV[0]> is 25
FLOAT.ValueA=<EVAL <ARGV[0]>> = 25.0

and <FVAL <FLOAT.ValueA>> = 25,000,00.0

Dividing by 1kk = 2.5 hence a further divison by 10 to get the .25 (25%)

<FVAL <FLOAT.ValueA>> = 25,000,00.0 <<< This dont make sense ...

If I Evaluate 2.0 I get 20 If I evaluate 20 I get 20 so when I Float Evaluate 2.5 I would expect 2.5

Is it supposed to be like how it is ?
(This post was last modified: 10-02-2012 10:07 PM by Barnabus.)
10-02-2012 10:06 PM
Find all posts by this user Like Post Quote this message in a reply
Extreme
Grandmaster Poster
***

Posts: 1,141
Likes Given: 217
Likes Received: 90 in 77 posts
Joined: May 2012
Reputation: 20

SphereCommunity

Post: #3
RE: Floats and Percentage
What do you really want? A percentage function?
Do you want decimal values or integers is okay?
PHP Code:
[FUNCTION F_PERCENTAGE// F_PERCENTAGE 10,100 = 10%
RETURN <EVAL (<ARGV[0]>*<ARGV[1]>)/100

STEPS BEFORE CREATE A THREAD
- Check the revisions log;
- Use the search button and use the keywords of your problem;
- Check the WIKI;
- Create a thread.
(This post was last modified: 10-02-2012 11:59 PM by Extreme.)
10-02-2012 11:59 PM
Find all posts by this user Like Post Quote this message in a reply
Shaklaban
Master
**

Posts: 378
Likes Given: 0
Likes Received: 1 in 1 posts
Joined: Mar 2012
Reputation: 8

DOT

Post: #4
RE: Floats and Percentage
you can also use muldiv for percantage like

local.perc = <muldiv <argn1> 10 100> //returns %10 of argn1

http://msdn.microsoft.com/en-us/library/...s.85).aspx
(This post was last modified: 10-03-2012 01:41 AM by Shaklaban.)
10-03-2012 01:36 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
Barnabus
Journeyman
*

Posts: 124
Likes Given: 0
Likes Received: 3 in 2 posts
Joined: Apr 2012
Reputation: 1



Post: #5
RE: Floats and Percentage
Extreme and Shaklaban - Thanks guys though Its not a percentage function I need. Its the floats I am confused about.
(Value/100*Percentage) is fine in integers, though I wanted to do it the other way for example 25% of 100 = (100*0.25)
Now casting an integer to a float in sphere is slightly puzzling. Take the little function below.
Code:
[FUNCTION f_floatYerBoat]
FLOAT.Whatever=<FVAL <ARGV[0]>>
SAY <FLOAT.Whatever>
If I input .f_floatYerBoat 20; I would expect to see 20.0 returned but instead it returns 2.00000, meaning its not simply returned my whole number as a decimal, instead it has divided it by 10 then returned it as a decimal.
So I was wondering am I using FLOAT and FVAL correctly ?
(This post was last modified: 10-03-2012 07:43 AM by Barnabus.)
10-03-2012 07:42 AM
Find all posts by this user Like Post Quote this message in a reply
RanXerox
Master
**

Posts: 550
Likes Given: 1
Likes Received: 12 in 9 posts
Joined: Dec 2010
Reputation: 19



Post: #6
RE: Floats and Percentage
FVAL is just an evaluation of the expression that returns a string with the decimal place moved one point to the left... Its a cosmetic function to make it easier to display a number in a dialog. so when you do <FVAL 20> the output is 2.0 and if you do <FVAL 20.0> you get 20.0 and if you do <FVAL 20.000> you get 2000.0
10-03-2012 08:13 AM
Find all posts by this user Like Post Quote this message in a reply
Barnabus
Journeyman
*

Posts: 124
Likes Given: 0
Likes Received: 3 in 2 posts
Joined: Apr 2012
Reputation: 1



Post: #7
RE: Floats and Percentage
Thanks RanXerox, now I understand I thought It was numerical like float/double

Thanks
10-03-2012 09:05 PM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 2 Guest(s)