将字符串转换为double

时间:2012-06-19 20:22:04

标签: c# .net string double

我需要帮助将字符串转换为带有7位小数的​​双精度数。我有一个字符串"00000827700000",需要将其转换为82.77

使用{0:N7}的String.Format()尝试没有成功。

2 个答案:

答案 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));