C#:随机变量的整数小数
我得到了这个(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
如何将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);