当前输出以下代码:
12.1
12.100
12.1000
12.00
12
12.0000
我怎样才能改变它,让它输出:
12.1
12.1
12.1
12
12
12
Math.Round 似乎就是这样,但它让我定义了我想要的小数位数,但我希望它们像上面那样是可变的。
如果没有数学方法可以做到这一点,我只会将字符串右侧的零和小数点去掉,但会认为有一种数学方法可以处理这个问题。
using System;
using System.Collections.Generic;
namespace Test8834234
{
public class Program
{
static void Main(string[] args)
{
List<string> decimalsAsStrings = new List<string>
{
"12.1",
"12.100",
"12.1000",
"12.00",
"12",
"12.0000"
};
foreach (var decimalAsString in decimalsAsStrings)
{
decimal dec = decimal.Parse(decimalAsString);
Console.WriteLine(dec);
}
Console.ReadLine();
}
}
}
您还可以将十进制的 ToString 与参数一起使用:
string s = dec.ToString("0.#");
注意:您的代码可能存在国际化问题。按照您编码的方式,它将使用来自用户计算机的文化信息,其中可能包含除.
对于小数点分隔符。这可能会导致您的程序为具有以下权限的用户提供不正确的结果.
用于千位分隔符。
如果你想保证解析方法总是表现相同,你可以使用文化信息不变文化 http://msdn.microsoft.com/en-us/library/4c5zdc6a.aspx。如果您确实想根据用户的区域性设置来解析字符串,那么您所做的就很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)