Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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#_Rounding - Fatal编程技术网

C#:随机变量的整数小数

C#:随机变量的整数小数,c#,rounding,C#,Rounding,我得到了这个(C#): 如何将decreturn var四舍五入到两位小数?我试过Math.Round和String.Format,它们似乎对RNG中生成的变量不起作用。我想。我是c#的新手,刚开始如果您使用变量decreturn并执行Math.Round(decreturn,2)或String.Format(“{0:F2}”,decreturn),它会按预期工作 以下示例正在运行: using System; public class Program { public static

我得到了这个(C#):


如何将decreturn var四舍五入到两位小数?我试过Math.Round和String.Format,它们似乎对RNG中生成的变量不起作用。我想。我是c#的新手,刚开始

如果您使用变量
decreturn
并执行
Math.Round(decreturn,2)
String.Format(“{0:F2}”,decreturn)
,它会按预期工作

以下示例正在运行:

using System;

public class Program
{
    public static void Main()
    {
        Random RNG = new Random();
        decimal divab50 = RNG.Next(50,100);
        decimal divbl50 = RNG.Next(6,50);
        decimal decreturn = divab50 / divbl50;
        decimal rounded = Math.Round(decreturn, 2);
        Console.WriteLine(rounded);
    }
}
Math.Round进行测试

您也可以为此应用
String.Format
,如下所示:

using System;

public class Program
{
    public static void Main()
    {
        Random RNG = new Random();
        decimal divab50 = RNG.Next(50,100);
        decimal divbl50 = RNG.Next(6,50);
        decimal decreturn = divab50 / divbl50;
        var rounded = String.Format("{0:F2}", decreturn);
        Console.WriteLine(rounded);
    }
}
字符串进行测试。格式

查看和的文档以获取更多信息。

根据您的需要使用或适当的

将双精度浮点值舍入到指定的数字 小数位数,并将中点值舍入到最接近的偶数 号码

定点(
“F”
)格式说明符将数字转换为字符串 格式为
“-ddd.ddd…”
,其中每个
“d”
表示一个数字(0-9)。这个 如果数字为负数,则字符串以减号开头

精度说明符指示所需的十进制数 地方。如果省略精度说明符,则当前
NumberFormatInfo.NumberDecimalDigits
属性提供数字 精确性

示例输出

3.42
3.42


注意:每次需要一个随机数时,创建一个新的
Random
实例将导致出现问题。最好将其用作
静态
字段或实例成员

谢谢大家的回答

对我有效的方法是向WriteLine方法添加“{0:F2}”,如下所示:

Random RNG = new Random();
decimal divab50 = RNG.Next(50,100);
decimal divbl50 = RNG.Next(6,50);
decimal decreturn = divab50 / divbl50;
Console.WriteLine("{0:F2}",decreturn);
这也起了作用。我第一次做得不对

decimal rounded = Math.Round(decreturn, 2);
Console.WriteLine(rounded);

谢谢大家

我只引用了Random一次,每次需要生成数字时都使用它,不建议这样做吗?我在YT学习一门6年的课程。谢谢你的回答和答案note@AndreiIon有关Random的更多信息和说明,请参阅控制台。WriteLine()
不知道或不关心
decreturn
是否恰好来自一个
Random
;它只看到传递给它的值。此外,为了便于将来参考,在问题中加入您已经尝试过的内容会很有帮助,因为
Math.Round()
String.Format()
(使用与
Console.WriteLine()
相同的格式)是两种常见的方法(
decimal.ToString()
是第三种)。
Random RNG = new Random();
decimal divab50 = RNG.Next(50,100);
decimal divbl50 = RNG.Next(6,50);
decimal decreturn = divab50 / divbl50;
Console.WriteLine("{0:F2}",decreturn);
decimal rounded = Math.Round(decreturn, 2);
Console.WriteLine(rounded);