我需要帮助将字符串转换为带有7位小数的双精度数。我有一个字符串"00000827700000"
,需要将其转换为82.77
使用{0:N7}的String.Format()尝试没有成功。
答案 0 :(得分:7)
看起来你可以使用:
decimal x = decimal.Parse(text.Substring(0, 7) + "." +
text.Substring(7),
CultureInfo.InvariantCulture);
这实际上会将其解析为82.7700000,因为decimal
会保留尾随零(在一定程度上),但这可能足够好了吗?不是,您可以将第二个参数更改为
text.Substring(7).TrimEnd('0')
请注意,我强烈建议您至少考虑使用decimal
而不是double
。你还没有解释这个值代表什么,但如果存储作为你需要保留的十进制数字,它对我来说更像是decimal
。
答案 1 :(得分:3)
根据编辑,它可以简化为
var text = "00000827700000";
var x = decimal.Parse(text, CultureInfo.InvariantCulture) / 10000000;
Console.Write(String.Format("{0:N7}", x));