C#将(123.4)(4645.2)(125.8)(222.5)(456.8)转换成int型
时间: 2023-10-14 10:06:09 浏览: 44
将浮点数转换为整数需要注意精度的丢失。如果你确定这些浮点数都可以转换为整数并且不会造成精度丢失,可以使用Convert.ToInt32()方法将它们转换为整数,示例代码如下:
```
double[] doubles = new double[] { 123.4, 4645.2, 125.8, 222.5, 456.8 };
int[] ints = new int[doubles.Length];
for (int i = 0; i < doubles.Length; i++)
{
ints[i] = Convert.ToInt32(doubles[i]);
}
```
如果浮点数可能造成精度丢失,可以使用Math.Round()方法四舍五入取整,然后再转换为整数,示例代码如下:
```
double[] doubles = new double[] { 123.4, 4645.2, 125.8, 222.5, 456.8 };
int[] ints = new int[doubles.Length];
for (int i = 0; i < doubles.Length; i++)
{
ints[i] = (int)Math.Round(doubles[i], 0, MidpointRounding.AwayFromZero);
}
```
其中,Math.Round()方法的第一个参数是要四舍五入取整的浮点数,第二个参数是保留小数点后几位,第三个参数是取整的方式,AwayFromZero表示向最近的整数舍入,远离零的方向。
相关问题
C#将字符串(123.4)(4645.2)(125.8)(222.5)(456.8)转换成int型
将带小数点的字符串转换为整数需要注意精度的丢失。如果你确定这些字符串都可以转换为整数并且不会造成精度丢失,可以使用Convert.ToInt32()方法将它们转换为整数,示例代码如下:
```
string[] strs = new string[] { "123.4", "4645.2", "125.8", "222.5", "456.8" };
int[] ints = new int[strs.Length];
for (int i = 0; i < strs.Length; i++)
{
ints[i] = Convert.ToInt32(strs[i]);
}
```
如果字符串可能造成精度丢失,可以先将字符串转换为浮点数,然后使用Math.Round()方法四舍五入取整,最后再转换为整数,示例代码如下:
```
string[] strs = new string[] { "123.4", "4645.2", "125.8", "222.5", "456.8" };
int[] ints = new int[strs.Length];
for (int i = 0; i < strs.Length; i++)
{
double d = double.Parse(strs[i]);
ints[i] = (int)Math.Round(d, 0, MidpointRounding.AwayFromZero);
}
```
其中,double.Parse()方法将字符串转换为浮点数,Math.Round()方法的第一个参数是要四舍五入取整的浮点数,第二个参数是保留小数点后几位,第三个参数是取整的方式,AwayFromZero表示向最近的整数舍入,远离零的方向。
c#将2023.05.24[01:04]转换成时间格式
可以使用DateTime.ParseExact()方法将字符串转换为DateTime类型,示例如下:
```csharp
string dateStr = "2023.05.24[01:04]";
DateTime date = DateTime.ParseExact(dateStr, "yyyy.MM.dd[HH:mm]", null);
```
其中,第一个参数为待转换的字符串,第二个参数为字符串的格式,第三个参数为CultureInfo对象,可以传入null表示使用当前线程的CultureInfo。上述代码中,使用的格式为"yyyy.MM.dd[HH:mm]",表示字符串中的年份采用4位表示,月份、日期、小时和分钟分别采用2位表示。最后得到的date变量即为转换后的DateTime类型的时间。