[英]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.