D do not know which function to use apparently

Narxa fbf99eQrXpHcjP8L at gmail.com
Tue Dec 11 15:17:10 UTC 2018


On Tuesday, 11 December 2018 at 14:53:02 UTC, Steven 
Schveighoffer wrote:
> On 12/11/18 9:47 AM, Narxa wrote:
>> On Tuesday, 11 December 2018 at 14:22:30 UTC, Adam D. Ruppe 
>> wrote:
>>> On Tuesday, 11 December 2018 at 14:16:05 UTC, Narxa wrote:
>>>> int var = floor(sqrt(n)) // where 'n' is a 'const int'
>>>
>>> You can just cast it to float:
>>>
>>> floor(sqrt( cast(float) n ));
>>>
>>> and it will work.
>> 
>> It produced the following error:
>> --------------------------------
>> Error: cannot implicitly convert expression 
>> floor(sqrt(cast(float)n)) of type float to int
>> 
>> 
>> I am using 'dmd' compiler if it matters.
>
> You need to cast the result back to int.
>
> -Steve

Yes, it worked:
---------------
int var = cast(int) floor(sqrt( cast(float) n ));


I thought floor already returned an 'int' but I was mistaken.

Thank you very much.


More information about the Digitalmars-d-learn mailing list