在C#中,将2个整数(整数和小数部分)连接到一个双精度
本文关键字:整数 连接 双精度 一个 2个 小数部 | 更新日期: 2023-09-27 18:28:11
考虑以下代码:
int integralPart = 123;
int decimalPart = 12345;
// double desiredDouble = 123.12345;
我想从2个int创建一个double,如示例所示。
我知道我可以使用double.Parse(integralPart.ToString() + "." + decimalPart.ToString())
,但如果应用程序不使用英语作为默认语言,我会遇到一些例外。
仅从你的措辞来看,我建议你真的想使用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
解决方案的修复:
double.Parse(integralPart.ToString() + "." + decimalPart.ToString(),
CultureInfo.InvariantCulture);
不过效率不是很高。
如果是价格,请使用decimal
:
decimal.Parse(integralPart.ToString() + "." + decimalPart.ToString(),
CultureInfo.InvariantCulture);