我有 c# 專案。我使用ToString("N", CultureInfo.CurrentCulture) 格式雙值,結果就像1.254.812,45。沒有問題。但是當我沒有精度時,我不想顯示1.254.812,00。我只想顯示1.254.812。我該怎么做?
uj5u.com熱心網友回復:
您可以使用自定義格式說明符#,它只回傳小數點之前和之后的數字中存在的小數位。
例如,對于de-DE文化:
Console.WriteLine(1254812.45.ToString("#,###.###", CultureInfo.GetCultureInfo("de-DE")));
Console.WriteLine(1254812.0.ToString("#,###.###", CultureInfo.GetCultureInfo("de-DE")));
輸出
1.254.812,45
1.254.812
dotnetfiddle
uj5u.com熱心網友回復:
我不知道是否有直接的解決方案,但Convert()我開發的方法提供了解決方案。
using System;
using System.Globalization;
public class Program
{
public static string Convert(string value)
{
if(value.Split('.')[1].Equals("00"))
return value.Split('.')[0];
return value;
}
public static void Main()
{
double[] inputs = {1254812.00, 1254812.45};
string[] results = {inputs[0].ToString("N", CultureInfo.CurrentCulture), inputs[1].ToString("N", CultureInfo.CurrentCulture)};
Console.WriteLine("{0}\t{1}", Convert(results[0]), Convert(results[1]));
}
}
此代碼產生以下輸出:
1,254,812 1,254,812.45
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/407842.html
標籤:
