相关疑难解决方法(0)

如何在.Net中将小数舍入到2位小数?

这应该很简单,但我找不到内置的方法,.net框架必须有一个方法来做到这一点!

private decimal RoundDownTo2DecimalPlaces(decimal input)
{
   if (input < 0)
   {
      throw new Exception("not tested with negitive numbers");
   }

   // There must be a better way!
   return Math.Truncate(input * 100) / 100;
}
Run Code Online (Sandbox Code Playgroud)

.net decimal rounding

9
推荐指数
3
解决办法
2万
查看次数

c#中的双倍乘法

我有一个简单的乘法问题,我无法理解......我正在使用.Net Framework 4,并在x86中构建.我正在执行以下代码:

double x = 348333.673899683;
double y = 4521014.98461396;
double aux = x * y;
Run Code Online (Sandbox Code Playgroud)

aux的预期值是1574821759346,09949827752137468(我用一个简单的计算器完成了它).但是,我在aux中获得的值是1574821822464.看到这不是精度错误,即使整数部分已被更改.

如果我在乘法中放置一个断点并将鼠标悬停在de*运算符上,我看到x*y = 1574821759346.0994即可.如果我将鼠标悬停在aux变量上,我会看到aux = 1574821822464

为了澄清最后一段,下面可以看到两张图:

在此输入图像描述

在此输入图像描述

首先,我认为可能是因为x86编译,但是阅读下一篇文章,我放弃了这个选项:

32位和64位OS中的双字节大小

我无法理解这里发生了什么.任何帮助将不胜感激.

---编辑更多信息---

我正在使用VS2015.我添加了三行来调试它:

log.Info(x);
log.Info(y);
log.Info(aux);
Run Code Online (Sandbox Code Playgroud)

要显示日志我正在使用库log4net.输出是:

23322 [8] INFO Art.Model.Scenarios (null) - 348333,673899683
24745 [8] INFO Art.Model.Scenarios (null) - 4521014,98461396
26274 [8] INFO Art.Model.Scenarios (null) - 1574821822464
Run Code Online (Sandbox Code Playgroud)

因此,它不是debuger中的错误.如果我创建一个全新的项目和解决方案,它可以正常工作,但我无法理解为什么不在这个解决方案中工作.

---第二次编辑---

感谢我的评论,我尝试了一些新的东西:

double x = 348333.673899683;
double y = 4521014.98461396;
double aux …
Run Code Online (Sandbox Code Playgroud)

.net c# double multiplication

6
推荐指数
1
解决办法
4264
查看次数

如何始终在小数点后显示 3 个数字 C#

我目前正在显示一个四舍五入到小数点后 3 位的数字,例如 0.31,使用 Math.Pow,唯一的问题是我想将此数字显示为 0.310(用于样式目的)有谁知道这是否可能?

c#

4
推荐指数
1
解决办法
1万
查看次数

Math.Round,保持小数位

例如.

Math.Round(2.314, 2) //2.31
Math.Round(2.301, 2) //2.3   , but I want this as 2.30
Run Code Online (Sandbox Code Playgroud)

c# rounding

3
推荐指数
1
解决办法
6146
查看次数

对于一个双变量,在小数点后取4个位置

我不想圆,我想在小数点后取4个位置.

例:

double something = 0.00038; 
Run Code Online (Sandbox Code Playgroud)

我想要结果

0.0003   // 8 is discarded 
Run Code Online (Sandbox Code Playgroud)

我怎么能实现这一目标?

c#

0
推荐指数
1
解决办法
192
查看次数

标签 统计

c# ×4

.net ×2

rounding ×2

decimal ×1

double ×1

multiplication ×1