簡體   English   中英

用十進制格式化字符串

[英]Format string with decimal

我正在嘗試使用可能包含或可能不包含“。”的字符串。 到x個字符的數量也要刪除“小數點”。 結果最終將轉換為有符號整數。 我也將始終需要1/10小數(即10將變成100,1將變成10,以此類推...)我想只格式化字符串,而不轉換為整數,直到最后。

如果我的傳入字符串是

9.86我想要98作為字符串(我不在乎四舍五入)

如果我得到9我想要90

如果我得到-100我想要-1000

如果我得到-95.353我想要-953

string.Format("{0:d}", (int)9.015*10);

如果您想要四舍五入的結果,請替換演員表

編輯:但是我錯過了“字符串”部分。 詳細代碼如下

var input = "9.86";
var len = input.IndexOf('.');
var result = "";
if (len > 0)
{
    result = input.Substring(0, len);
    result += input.Substring(len + 1, 1);
}
else
{
    result = input + "0";
}

如果您實質上是將字符串中包含的數字乘以10並在第一個數字后保留小數位,那么最好將字符串強制轉換為十進制,然后進行轉換並將該數字強制轉換為整數。 否則,您將必須編寫大量數學規則,以了解如何基於特定類型的輸入來修改字符串。

        string[] input  = {"9.86", "9", "-100", "-95.3"};
        List<int> intNums = new List<int>();
        foreach (string s in input)
        {
            decimal number;
            if (Decimal.TryParse(s, out number))
            {
                number = number * 10;  
                intNums.Add((int)number);
            }

        }

輸出:[0] 98 int [1] 90 int [2] -1000 int [3] -953 int

暫無
暫無

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

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