相关疑难解决方法(0)

round()for C++中的float

我需要一个简单的浮点舍入函数,因此:

double round(double);

round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Run Code Online (Sandbox Code Playgroud)

我能找到ceil()floor()在math.h中-但不是round().

它是以另一个名称存在于标准C++库中,还是缺少?

c++ floating-point rounding

227
推荐指数
11
解决办法
36万
查看次数

将浮点数舍入到预定义点的常规网格

我想将浮点数舍入到给定的精度,例如:

0.051 i want to convert it to
0.1

0.049 i want to convert it to
0.0

0.56 i want to convert it to
0.6

0.54 i want to convert it to
0.5
Run Code Online (Sandbox Code Playgroud)

我无法更好地解释它,但其原因是将点位置(如0.131f,0.432f)转换为网格中瓷砖的位置(如0.1f,0.4f).

c++ rounding

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

双类型的舍入问题

可能重复:
为什么不对双精度值的操作给出预期结果?

我在C++中遇到了一个特殊的问题.我创建了一个Double类型的变量.然后我做了一些计算,将一些值分配给其他变量,并将结果分配给我声明的双变量.它给了我一个长小数部分的结果.我希望它只舍入到小数点后2位.并将其存储到变量中.但即使在几次尝试四舍五入之后,我也无法将其舍入到小数点后两位.

然后我尝试了另一种方法来检查真正的问题是什么.我创建了一个Double变量并为其赋值1.11.但是当我通过设置断点并为该变量添加监视来调试它时,我发现现在存储在变量中的值是1.109999999999.

我的问题是,为什么会这样显示?我们有什么方法可以将变量舍入到两位小数?为什么即使我们分配一个只有两位小数的数字,它也显示一个长小数部分?

请建议一种方法来存储数字 - 无论是计算数字还是直接分配数字 - 实际上是双变量而不是带小数字长的数字.

c++ floating-point rounding

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

在C++中删除小数点后的一些数字

我需要删除小数点后的数字,但不是全部。

例如,double dig=3.1459038585 我需要将其转换为 dig=3.14

我想我需要多次 dig 到 100 然后将其转换为整数,然后再次转换为 double 并删除为 100 (所有这些都是 1 行)。但是有什么功能可以更快地做到这一点吗?

c++

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

C#中如何将第二个小数点四舍五入到能被10整除的最接近的值

我尽了最大努力,在pythonc++phpJavaScript中找到了一些答案,但这些答案并没有完全解决我的问题......

C#我试图将第二个小数点的值四舍五入到被 10 整除的最接近的值。
我有一个双精度z= 14.066666
我需要变成z14.10

这是我到目前为止所做的:

var result1 = Math.Ceiling(z);             // 15      (want 14.10)
var result2 = Math.Round(z,2);             // 14.7    (want 14.10)
var result3 = Math.Round(z,5);             // 14.0667 (want 14.10)
var result4 = Math.Ceiling(z*100)/100.0;   // 14.07   (want 14.10)
var result5 = Math.Ceiling(z*10)/10        // 14.1    (want 14.10)
Run Code Online (Sandbox Code Playgroud)

感谢您的考虑,并感谢我遇到的任何帮助。

c#

-1
推荐指数
1
解决办法
105
查看次数

标签 统计

c++ ×4

rounding ×3

floating-point ×2

c# ×1