请考虑以下代码:
int integralPart = 123;
int decimalPart = 12345;
// double desiredDouble = 123.12345;
我想从2个整数创建一个double,如示例所示。
我知道我可以使用double.Parse(integralPart.ToString() + "." + decimalPart.ToString())
,但如果应用程序没有使用英语作为默认语言,我会收到一些例外。
答案 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