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