簡體   English   中英

C#:數學函數

[英]C# : Math functions

我有一個List<Double>

  List<Double>lst=new List<Double>{ 1.0,2.409,3.0}

我需要將此列表轉換為List<String>

所以結果應該包含

    { "1","2.409","3"}

在結果中,如果值沒有任何浮點,則不需要添加.0

請幫我這樣做

如果你使用.Net 3.5,你可以使用Linq:

lst.Select(n => String.Format("{0:0.###}", n));

否則,您可以做到這一點:

var output = new List<string>();

foreach (int number in lst)
{
    output.Add(String.Format("{0:0.###}", number));
}

以下是我對此的看法,它不依賴於文化特定的分數分隔符,也不依賴於固定的小數位數:

var result = lst.Select(
  n => { 
     double truncated = Math.Truncate(n);

     if(truncated == n) {
       return truncated.ToString("0");
     } else {
       return n.ToString();
     }
  }
);
        List<Double> lst=new List<Double>() { 1.0,2.409,3.0};
        List<string> output = lst.Select(val => val.ToString("0.######")).ToList();

應該做你想做的事

List lst = new List { 1.0, 2.409, 3.0 };
List newlist =  lst.Select(val => val.ToString()).ToList();

少寫......

暫無
暫無

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

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