我需要合併兩個int在一個唯一的雙。 我的代碼和示例:合併兩個int在一個雙c#與分析
int left = 1;
int right = 38;
我會希望在雙得到這樣的結果:
雙mergeVariable = 1.38
如何可能合併兩個int在一個雙?
我都試過,但不起作用
double result = double.Parse(left.ToString() + "." + right.ToString());
感謝
我需要合併兩個int在一個唯一的雙。 我的代碼和示例:合併兩個int在一個雙c#與分析
int left = 1;
int right = 38;
我會希望在雙得到這樣的結果:
雙mergeVariable = 1.38
如何可能合併兩個int在一個雙?
我都試過,但不起作用
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);
使用當前區域性爲了不(可有一個任意小數點分隔符,例如逗號,
爲俄羅斯擁有)
您可以將整數轉換成字符串,結合這串並轉換這雙。
left.toString();
right.toString();
string combinedLeftRight = left + "." + right;
double mergeVariable = Convert.ToDouble(combinedLeftRight);
格爾茨
你的代碼中的Convert.ToDouble使用'Culture.CurrentCulture';請指定'CultureInfo.InvariantCulture' –
這也工作:
int left = 1;
int right = 38;
double result = left + right/Math.Pow(10, right.ToString().Length);
你想'Math.Pow',不*乘*:如果'right.Length == 2'你會得到'左+右/ 20' –
@DmitryBychenko是的,你說得對。 –
你可能會嘗試用這種方法,也得到轉換結果要麼轉換成功翻番與否。
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());
像這樣的回答:answer
還與插弦變異(如果有使用它們的可能性)看起來更簡潔:
int left = 1;
int right = 38;
double result = double.Parse($"{left}.{right}", CultureInfo.InvariantCulture);
正如@DmitryBychenko指出的,你甚至可以用'left .ToString(CultureInfo.CurrentCulture)+ CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator + right.ToString(CultureInfo.CurrentCulture);'使用當前的文化而不是不變的文化。 –