C# 将2个整数(整数和小数部分)与C中的一个双精度数相加#

C# 将2个整数(整数和小数部分)与C中的一个双精度数相加#,c#,C#,考虑以下代码: int integralPart = 123; int decimalPart = 12345; // double desiredDouble = 123.12345; 我想从2整数创建一个double,如示例所示 我知道我可以使用double.Parse(integralPart.ToString()+“+decimalPart.ToString()),但是如果应用程序没有使用英语作为默认语言,我会遇到一些异常情况。解决方案的修复程序: double.Parse(integ

考虑以下代码:

int integralPart = 123;
int decimalPart = 12345;
// double desiredDouble = 123.12345;
我想从2整数创建一个double,如示例所示


我知道我可以使用
double.Parse(integralPart.ToString()+“+decimalPart.ToString())
,但是如果应用程序没有使用英语作为默认语言,我会遇到一些异常情况。

解决方案的修复程序:

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

如果它们是价格,请使用
decimal

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

解决方案的修复程序:

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

如果它们是价格,请使用
decimal

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

仅从您的措辞来看,我建议您确实想使用
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

仅从您的措辞来看,我建议您确实想使用
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

您如何用2个整数表示
123.01234
?一个整数是小数部分。您真的希望(123,45)等于(123,450)吗?对我来说,这听起来是个很糟糕的主意。@Pacha:这是价格吗?那就不要用替身。用整数运算完成每件事。@Pacha:在这种情况下:保持冷静,慢慢离开项目…;)您如何用2个整数表示
123.01234
?一个整数是小数部分。您真的希望(123,45)等于(123,450)吗?对我来说,这听起来是个很糟糕的主意。@Pacha:这是价格吗?那就不要用替身。用整数运算完成每件事。@Pacha:在这种情况下:保持冷静,慢慢离开项目…;)谢谢,这似乎是最好的解决方案谢谢,这似乎是最好的解决方案