Get whole number from float - lazarus

I have number: 12.73486
I would like to get only whole number: 12.
Could you help me? I don't want to round but cut only for whole number.

Like in most programming languages, you can use floor()

Floor function is correct as Emiliopelaez said, but I "believe" you must remember to add the "math" unit to your uses statement

Related

How can I use the float version of nfp()?

I'm trying to use the nfp() function in Processing to present my floats on screen with a certain number of decimal places. In the manual page for this function, it says that
There are two versions: one for formatting floats, and one for formatting ints.
However, when I'm trying to use the function with a float variable (and an int variable for the number of decimal points), I get the following error:
The function "nfp()" expects parameters like; "nfp(int,int)".
Am I missing something here? How can I access the float version of the function?
The nfp function formats numbers into strings and adds zeros to it.
This is done for integers always before the given number, which is why the function npf(int, int) requires only one more parameter for the digits.
The function nfp(float, int) does not work. The function requires for a float input two integers: nfp(float, int, int).
This is, since it needs to know, how many digits will be added before the dot (left) and how many should be added after the dot (right).
nfp(1.2, 1, 2) will lead to +1.20
nfp(1.2, 2, 1) will lead to +01.2
Not a big issue? NO! This is a perfect example to learn two things:
It is important that thrown Errors have to make clear what the problem really is about.
Documentation has to be clear about the usage of functions, especially, when they accept different variations of parameters.
If both are not considered well enough, when designing a framework, developers (like op in this case) get stuck on problems that could have been easily avoided.

Unwrapping a formula?

In my ongoing quest to learn ruby by doing training exercises I came across an extra credit question that basically wants me to unwrap this formula:
what = add(age, subtract(height, multiply(weight, divide(iq, 2))))
My question is I am a little stuck on this part. I understand for example that add(age, subtract would be the same as age + subtract, but after that I just become lost.
Keep going, but work from the inside-out instead--what's divide(iq, 2)? Use that as the second argument for multiply, and so on.
Start from the inside and work out.
Divide iq by 2. Multiply that by weight. Subtract that from height. Add that to age.
In general, with nested parentheses, you always start from the innermost.

Implementing ceil function in Xilinx

I would like to take the ceil of the signal in Simulink(Xilinx Library). So, if for instance, the signal value is 1.5, the output would be 2.
Any suggestion on how can I implement it in Simulink ?
Also, I am keen to understand the approach how for instance floor,round function could be implemented as well.
Any blocks in xilinx library which does it ?
Thanks
Kiran
Not sure there's a block for it, but you could use an mcode block I think and put the Matlab ceil function in it.
Or you could build a block which uses Slice blocks to separate the integer and fractional parts and increment the integer part if the fractional part is not zero.
For rounding and flooring, the Cast block will round or truncate for you, you have to manage the output type yourself though.

how to set round-off precision in mathematica

I want to illustrate the stability of some numerical algorithms. I want to use Mathematica to round floating point numbers according to the usual rule, for example:
myRound[3/80.]=0.038 if I specify the precision to be 2-digit.
Another one
myRound[89/47.]=1.89
So given a precision number, how to write the myRound function? Please help. Many thanks.
You should look into NumberForm. For example:
NumberForm[89.0/47.0, 3]
Returns 1.89.
Acutally, it occurs to me that if you really want to illustrate round off issues, you should look into the ComputerArithmetic package. It's well documented, so I'll leave it at that.
I am not sure is this is what you would like:
In[34]:= customRound[x_Real] :=
Round[x, 10^Round[RealExponent[x]]*0.01]
In[35]:= customRound[3/80.]
Out[35]= 0.038
In[36]:= customRound[89/47.]
The function actually changes the number, as opposed to merely changing the way it is displayed.

What does the period do in this line of Fortran?

I am not sure what version of Fortran this is, but the line is:
Term = F*F - 4.*E*G
I know that it multiplies F by F and then subtracts something, but I don't know what the period after the 4 is doing there.
I'm going to venture a guess based on every other programming language I've ever seen, and say that it's making the constant "4" of type Real, rather than Integer. In other words, it's making sure the types in the expression all match up. "4.0" would be equivalent; whoever wrote this code was just feeling extra concise that day.
It makes it a real number instead of an integer.
If you're new to Fortran, a "REAL" number is what is called in C-like languages a "float".
But only Fortran programmers can say the GOD is REAL, by default.

Resources