繁体   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