您好我找不到将此字符串格式化为十进制的好方法。
3942.000000000000
关于它的任何想法?
修改
这怎么现在是一个有效的问题?对于不同的文化格式,有些人(因为我)可能会错过CultureInfo
所假设的decimal.Parse
。
此外,我不想要float
,因此float
到decimal
是额外的步骤。
只是我的两美分
答案 0 :(得分:6)
您是否尝试过Decimal.Parse
指定小数点分隔符?
var yourString = "3942.000000000000";
var info = new NumberFormatInfo { NumberDecimalSeparator = "." };
var parsed = Decimal.Parse(yourString, info);
编辑: 正如乔恩建议你可以使用InvariantCulture:
var yourString = "3942.000000000000";
var parsed = Decimal.Parse(yourString, CultureInfo.InvariantCulture);
答案 1 :(得分:4)
您无法使用的任何理由
Convert.ToDecimal("3942.000000000000");
答案 2 :(得分:0)
您可以在TryParse
上使用string
。请注意通话中的out
。
string yourString = "3942.0000000000"
decimal yourDecimal;
decimal.TryParse(yourString, out yourDecimal)
答案 3 :(得分:0)
您可以使用TryParse:
string yourString = "3942.0000000000"
decimal d;
if (decimal.TryParse(yourString, out d))
{
//OK
}
else
{
// Handle failure
}