在C#中将2个整数(整数和小数部分)连接到一个double

时间:2013-08-19 20:48:20

标签: c#

请考虑以下代码:

int integralPart = 123;
int decimalPart = 12345;
// double desiredDouble = 123.12345;

我想从2个整数创建一个double,如示例所示。

我知道我可以使用double.Parse(integralPart.ToString() + "." + decimalPart.ToString()),但如果应用程序没有使用英语作为默认语言,我会收到一些例外。

2 个答案:

答案 0 :(得分:2)

解决方案的修复:

double.Parse(integralPart.ToString() + "." + decimalPart.ToString(),
    CultureInfo.InvariantCulture);
但是,这不是很有效率。

如果是价格,请改用decimal

decimal.Parse(integralPart.ToString() + "." + decimalPart.ToString(),
    CultureInfo.InvariantCulture);

答案 1 :(得分:2)

单从你的措辞,我建议你真的想用decimal s:

int integralPart = 123;
int decimalPart = 12345;

decimal result = decimalPart;
while (result>=1m) result/=10m; // CAVEAT: see below

result+=integralPart;

糟糕。并且有其他人提到的模糊性问题。可能,您需要以固定比例替换我的while

result = integralPart + decimalPart / 1000000m; // fixed scale factor