Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取字符串中表示的双精度的整数部分?_C# - Fatal编程技术网

C# 如何获取字符串中表示的双精度的整数部分?

C# 如何获取字符串中表示的双精度的整数部分?,c#,C#,我有一个表示为字符串的双精度值。我只想得到数字的整数部分作为字符串 我该怎么做?例如,使用此字符串: string str ="123.0000"; 我想以这根绳子结束 string result ="123"; 您可以尝试使用以下方法: int myInt = (int)Double.Parse(string); 如果不需要舍入,可以将其解析为double,然后将其转换为int int i = (int)double.Parse("123.000"); 您可以尝试以下方法: int

我有一个表示为字符串的双精度值。我只想得到数字的整数部分作为字符串

我该怎么做?例如,使用此字符串:

string str ="123.0000";
我想以这根绳子结束

 string result ="123";

您可以尝试使用以下方法:

int myInt = (int)Double.Parse(string);

如果不需要舍入,可以将其解析为double,然后将其转换为int

int i = (int)double.Parse("123.000");

您可以尝试以下方法:

int integralPart = (int)Double.Parse(str);
首先解析字符串并创建一个double,然后将double转换为整数

另一种方法是基于点分割字符串

var parts = str.Split('.');
然后,如果需要整数部分的字符串表示,只需获取数组中的第一项:

parts[0]
如果要创建整数,只需解析后者:

int integralPart = int.Parse(parts[0]);
对于更主动的编程风格,最好使用
double
int
TryParse
方法来处理任何异常

例如:

int integralPart;
double number;
if(Double.TryParse(str, out number))
{
    integralPart = (int)number;
}

如果希望结果为字符串,则只需抓取
字符
,直到遇到非数字:

string str = "123.0000";
str = new string(str.TakeWhile(char.IsDigit).ToArray());

在我看来,您应该使用.NET内置函数使代码尽可能明确

您应该解析数字(使用Decimal.parse或Decimal.TryParse),然后使用Math.Floor或Math.Truncate函数。您希望使用哪一种取决于您希望处理负值的方式

参考:

相关职能:

你能把它分开吗?你需要解析它吗?