0

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

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

4

2 回答 2

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

于 2012-06-19T20:25:21.123 回答
3

根据编辑,它可以简化为

var text = "00000827700000";
var x = decimal.Parse(text, CultureInfo.InvariantCulture) / 10000000;
Console.Write(String.Format("{0:N7}", x));
于 2012-06-19T20:29:50.427 回答