Printing integers with {#} in C #?

Sorry if this is a duplicate, but I did not find anything suitable for it.

So how can I print 0 for integer square root numbers with the following code?

 for (n = 1.0; n <= 10; n++) { Console.WriteLine ("Fractional Part : {0 :#.####}", (Math.Sqrt(n) - (int) Math.Sqrt(n))); } 

Current O / P: enter image description here

+5
source share
2 answers

Assuming an initial zero on other fractional results is valid, and since your result is always in the range [0,1) , you can simply change #.#### to 0.#### .

 for (var n = 1.0; n <= 10; n++) { Console.WriteLine("Fractional Part : {0:0.####}", (Math.Sqrt(n) - (int) Math.Sqrt(n))); } 

Results:

 Fractional Part : 0 Fractional Part : 0.4142 Fractional Part : 0.7321 Fractional Part : 0 Fractional Part : 0.2361 
+7
source

How about using an "N" format digital specifier with an accuracy of 4 ?

 for (var n = 1.0; n <= 10; n++) { Console.WriteLine("Fractional Part : {0}", (Math.Sqrt(n) - (int)Math.Sqrt(n)).ToString("N4")); } 

Result:

 Fractional Part : 0.0000 Fractional Part : 0.4142 Fractional Part : 0.7321 Fractional Part : 0.0000 Fractional Part : 0.2361 Fractional Part : 0.4495 Fractional Part : 0.6458 Fractional Part : 0.8284 Fractional Part : 0.0000 Fractional Part : 0.1623 
+4
source

Source: https://habr.com/ru/post/1247808/


All Articles