簡體   English   中英

小數位在C#中是否為零

[英]Decimal place is zero or not in C#

我有2個double

double d1 = 3456786.065343

double d2 = 4848484.000000

僅當小數點后的值是0時,才必須格式化數字,四舍五入到兩個零小數位,例如4848484.00

如果小數點后的數字不為零,則不要應用任何格式,例如3456786.065343

您可以檢查小數點是否為整數,如果小數點后保留了除0以外的一些數字,則它不是整數,否則為true

第一種情況:

decimal d = 4848484.000000M;
        if((d % 1) == 0)
        {
         // prints 4848484.00
          Console.WriteLine(decimal.Round(d, 2, MidpointRounding.AwayFromZero)); 
        }
        else
        {
            Console.WriteLine(d.ToString());
        }

第二種情況:

decimal d1 = 3456786.065343M;
            if((d1 % 1) == 0)
            {
              Console.WriteLine(decimal.Round(d1, 2, MidpointRounding.AwayFromZero)); 
            }
            else
            {
                //prints 3456786.065343
                Console.WriteLine(d1.ToString()); 
            }

因此,如果小數點類似於3456786.065343它將按3456786.065343打印。

如果小數點為4848484.000000則將打印4848484.00

如果您只是想格式化要顯示的數字,請使用0.00########的格式字符串。 這將顯示至少2個小數位。

var s1 = d1.ToString("0.00####"):

檢查數字是否具有十進制浮點數非常簡單:

private void Foo()
        {
            double d2 = 4848484.000000;

            if (d2 - Math.Round(d2) != 0)
            {
                Console.WriteLine(d2.ToString());
            }

            else
            {
                Console.WriteLine(d2.ToString("0.00####"));
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM