Nom*_*are 4 c# string type-conversion
我想将浮点值转换为字符串.
以下是我用于转换的代码.
static void Main(string[] args)
{
string s =string.Format("{0:G}", value);
Console.Write(s);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
它输出为 2.5
但我的问题是我想获得价值,2.50因为我想在我的项目中稍后将其与原始值进行比较.
如果有办法,请建议我吗?
您应该使用{0:N2}格式化为两位小数.
string.Format("{0:N2}", 2.50)
Run Code Online (Sandbox Code Playgroud)
小数点后3位:
string.Format("{0:N3}", 2.50)
Run Code Online (Sandbox Code Playgroud)
等等.
您也可以以这种方式将值存储在字符串中而不必担心精度,然后将您的值转换为您要测试比较的值作为字符串:
string strDecimalVal = Convert.ToString( 2.5000001);
Run Code Online (Sandbox Code Playgroud)
因为我想在我的项目中稍后将其与原始值进行比较.
...然后你需要存储原始值所具有的小数位数.一旦值为浮点数,此信息就会丢失.的浮动交涉2.5,2.50并且2.500是完全一样的.
所以,基本上,你有以下可能性(按优先顺序):
myFloat.ToString("F" + numDecimals.ToString())将其转换为字符串.另外,如果你不使用浮动坚持,decimals可能适合你的目的:在做存储显著的位数:
decimal x = Decimal.Parse("2.50", CultureInfo.InvariantCulture);
decimal y = Decimal.Parse("2.500", CultureInfo.InvariantCulture);
Console.WriteLine(x.ToString()); // prints 2.50
Console.WriteLine(y.ToString()); // prints 2.500
Run Code Online (Sandbox Code Playgroud)