将两个int与Parse合并到一个双c#中

将两个int与Parse合并到一个双c#中,c#,parsing,merge,int,double,C#,Parsing,Merge,Int,Double,我需要将两个int合并到一个唯一的double中。 我的代码和示例: int left = 1; int right = 38; 我希望得到双倍的结果: 双合并变量=1.38 如何将两个int合并为一个double 我试过了,但没用 double result = double.Parse(left.ToString() + "." + right.ToString()); 谢谢您可能需要指定CultureInfo.InvariantCulture: int left = 1; in

我需要将两个int合并到一个唯一的double中。 我的代码和示例:

int left = 1;
int right = 38;
我希望得到双倍的结果:

双合并变量=1.38

如何将两个int合并为一个double

我试过了,但没用

double result = double.Parse(left.ToString() + "." + right.ToString());

谢谢

您可能需要指定
CultureInfo.InvariantCulture

  int left = 1;
  int right = 38;

  double result = double.Parse(
     left.ToString() + "." + right.ToString(),
     CultureInfo.InvariantCulture);

为了不使用当前区域性(可以有任意的十进制分隔符,例如逗号
,就像俄罗斯人一样)而使用当前区域性,您可能需要指定
CultureInfo.InvariantCulture

  int left = 1;
  int right = 38;

  double result = double.Parse(
     left.ToString() + "." + right.ToString(),
     CultureInfo.InvariantCulture);

为了使用当前区域性(可以有任意的十进制分隔符,例如逗号
,就像俄罗斯人的那样)使

您可以将整数转换为字符串,将其组合为字符串,并将其转换为双精度

 left.toString();
 right.toString();
 string combinedLeftRight = left + "." + right;
 double mergeVariable = Convert.ToDouble(combinedLeftRight);

greetz

您可以将整数转换为字符串,将其组合为字符串并将其转换为双精度

 left.toString();
 right.toString();
 string combinedLeftRight = left + "." + right;
 double mergeVariable = Convert.ToDouble(combinedLeftRight);
格里茨

这也可以:

int left = 1;
int right = 38;

double result = left + right / Math.Pow(10, right.ToString().Length);
这也会起作用:

int left = 1;
int right = 38;

double result = left + right / Math.Pow(10, right.ToString().Length);

您可以尝试使用这种方法,也可以获得转换结果,即转换是否成功翻倍

try
{
    int left = 1;
    int right = 38;
    double Both;
    bool ConverstionSucceed = double.TryParse((left + "." + right), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out Both);
}
catch (Exception ex)
{
} 

您可以尝试使用这种方法,也可以获得转换结果,即转换是否成功翻倍

try
{
    int left = 1;
    int right = 38;
    double Both;
    bool ConverstionSucceed = double.TryParse((left + "." + right), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out Both);
}
catch (Exception ex)
{
} 

此方法将从当前区域性中添加小数分隔符

        int left = 1;
        int right = 38;

        double result = Convert.ToDouble(
           left.ToString() + CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator + right.ToString());

此方法将从当前区域性中添加小数分隔符

        int left = 1;
        int right = 38;

        double result = Convert.ToDouble(
           left.ToString() + CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator + right.ToString());
像这样的回答:

此外,带有插值字符串的变量(如果有可能使用它们)看起来更简洁:

int left = 1;
int right = 38;

double result = double.Parse($"{left}.{right}", CultureInfo.InvariantCulture);
像这样的回答:

此外,带有插值字符串的变量(如果有可能使用它们)看起来更简洁:

int left = 1;
int right = 38;

double result = double.Parse($"{left}.{right}", CultureInfo.InvariantCulture);

你想要的是
Math.Pow
,而不是乘法:如果
right.Length==2
你会得到
left+right/20
你想要的是
Math.Pow
,而不是乘法:如果
right.Length==2
你会得到
left+right/20
,正如@DmitryBychenko所指出的,你甚至可以使用
left.ToString(CultureInfo.CurrentCulture)+CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator+right.ToString(CultureInfo.CurrentCulture)
使用当前区域性而不是不变区域性。正如@DmitryBychenko指出的,您甚至可以使用
left.ToString(CultureInfo.CurrentCulture)+CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator+right.ToString(CultureInfo.CurrentCulture)
使用当前区域性而不是不变区域性。
在代码中转换.ToDouble
使用
区域性。CurrentCulture
;请在代码中指定
CultureInfo.InvariantCulture
Convert.ToDouble
使用
Culture.CurrentCulture
;请指定
CultureInfo.InvariantCulture