带小数的格式字符串

时间:2015-09-28 20:59:20

标签: c#

我正在尝试使用可能包含或不包含'。'的字符串。删除“小数点”的x个字符数。结果最终将转换为有符号整数。我也将始终需要1/10十进制(即10将变为100,1将变为10,等等...)我想只是格式化字符串而不转换为整数直到最后。

实施例

如果我的传入字符串是

9.86 我想要98作为一个字符串(我不关心四舍五入或任何东西)

如果我得到9 我想要90

如果我得到-100 我想-1000

如果我得到-95.353 我想-953

2 个答案:

答案 0 :(得分:2)

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

如果您想要舍入结果,请替换Cast

编辑:但我错过了“字符串”部分。下面的详细代码

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";
}

答案 1 :(得分:1)

如果您基本上将字符串中包含的数字乘以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