Re: D do not know which function to use apparently
On Tuesday, 11 December 2018 at 15:17:10 UTC, Narxa wrote: 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. I think you don't need floor. int var = cast(int)(sqrt(cast(float)n)); or: int var = cast(int)(float(i).sqrt); or: int var = float(i).sqrt.to!int; Andrea
Re: D do not know which function to use apparently
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.
Re: D do not know which function to use apparently
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
Re: D do not know which function to use apparently
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.
Re: D do not know which function to use apparently
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.
D do not know which function to use apparently
Hello, people! The following case: --- int var = floor(sqrt(n)) // where 'n' is a 'const int' Produces the following error: - Error: std.math.sqrt called with argument types (const(int)) matches both: /usr/include/dmd/phobos/std/math.d(2067): std.math.sqrt(float x) and: /usr/include/dmd/phobos/std/math.d(2073): std.math.sqrt(real x) Please, could you tell me how do I solve this?! Thank you!