Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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#,我想分析如下: 3.5 -> 3.5 3.484 -> 3.48 3.82822 -> 3.82 等等。 但是, decimal.Parse("3.543") 产量3543和 所以我做了: decimal.Parse("3.543",CultureInfo.InvariantCulture) 收益率3.543和 但是 产量3543 那么我该怎么做呢?您需要舍入法: decimal t = 3.82822; decimal.Round(t, 2); 其中2表示所需的小

我想分析如下:

3.5 -> 3.5
3.484 -> 3.48
3.82822 -> 3.82
等等。 但是,

decimal.Parse("3.543") 
产量3543和 所以我做了:

decimal.Parse("3.543",CultureInfo.InvariantCulture) 
收益率3.543和 但是

产量3543

那么我该怎么做呢?

您需要舍入法:

decimal t = 3.82822;
decimal.Round(t, 2);

其中2表示所需的小数点。

使用数学。如下所示进行四舍五入:

decimal a = 1.9946456M;

Math.Round(a, 2); //returns 1.99

decimal b = 1.9953454M;

Math.Round(b, 2); //returns 2.00

我想你应该把两位数后的小数位截断。试一试:


您应该使用实际使用逗号作为小数分隔符的区域性

CultureInfo.GetCultureInfo("fr-fr")
比如说

 Console.WriteLine(decimal.Parse("3,543", CultureInfo.InvariantCulture)); // 3543
 Console.WriteLine(decimal.Parse("3,543", CultureInfo.GetCultureInfo("fr-fr"))); //3,543
如果你想把结果四舍五入。你可以用

Console.WriteLine(String.Format("{0:0.00}", decimal.Parse("3,543", CultureInfo.GetCultureInfo("fr-fr")))); //3,54

但是我想要的结果是3,54,而不是3543(逗号后只有2个数字),然后是decimal.Round(decimal.Parse(“3543”,CultureInfo.GetCultureInfo(“fr”)),2)
 Console.WriteLine(decimal.Parse("3,543", CultureInfo.InvariantCulture)); // 3543
 Console.WriteLine(decimal.Parse("3,543", CultureInfo.GetCultureInfo("fr-fr"))); //3,543
Console.WriteLine(String.Format("{0:0.00}", decimal.Parse("3,543", CultureInfo.GetCultureInfo("fr-fr")))); //3,54