我很好奇在财务数据的计算方面存在任何"舍入"标准.我最初的想法是仅在数据呈现给用户(表示层)时执行舍入.
如果"舍入"数据然后用于进一步计算,应该使用"圆形"数字还是"原始"数字?有人有建议吗?
请注意,我知道不同的舍入方法,即银行家舍入等.
我已经尝试了几种方法将float转换为int,我想要的是截断一个float,所以我只得到整数部分.我正在使用
x := float32(3.1)
y,_ := strconv.Atoi((strconv.Ftoa32(x,'f',0))) //y becomes 3
Run Code Online (Sandbox Code Playgroud)
但是如果x是3.9,y将变为4,因为这个函数将围绕float32而不是截断.有没有一种截断而不是舍入的方法?如果是这样,是否可以在不涉及字符串的情况下进行?(比如在C中将float转换为int)
我正在使用java.util.Random生成随机高斯.我需要将此高斯转换为浮点值.然而高斯是一个双,所以我需要一些方法来圆或然后将其转换为浮点数.我需要四舍五入到最近的整数,四舍五入.这是我的问题:如何?
如何将两位小数相乘并将结果四舍五入到小数点后两位?
例如,如果方程为41.75 x 0.1,则结果为4.175.如果我在带小数的c#中执行此操作,它将自动舍入到4.18.我想向下舍入到4.17.
我尝试使用Math.Floor,但它只是向下舍入到4.00.这是一个例子:
Math.Floor (41.75 * 0.1);
Run Code Online (Sandbox Code Playgroud) 我有一个
float a = 1412.244019;
Run Code Online (Sandbox Code Playgroud)
我需要一个四舍五入到最接近的第二个小数,如1412.24000000.我明白,如果我想要只用两位小数来表示我使用%.2f,但事实并非如此.出于数学原因,我需要新的a作为浮点数.
我已经尝试了在stackoverflow上找到的几个没有运气的方法.我使用的更明显,我在下面提到,但仍然没有运气使用它.你能明白为什么魔法没有发生吗?
PS:它确实有时会产生预期的效果,而不是总能让我思考......嗯......
提前致谢.
码:
float a = 1412.244019;
NSLog(@"a is %f", a); //output a is 1412.244019
a = [[NSString stringWithFormat:@"%.2f", a] floatValue];
NSLog(@"a is %f", a); //output a is 1412.239990
Run Code Online (Sandbox Code Playgroud)
编辑:
看起来就像我在上述手术后使用浮子一样,它正在考虑它是1412.240000,尽管NSLog说的不同......奇怪.但我得到了我想要的东西,所以感谢浪费时间追逐任何东西:)
编辑我很乐意选择你们所有人作为正确的答案,但由于我只能选择一个,我选择了第一个好的答案,并附加了解释(最后两个).
来自R帮助功能:请注意,为了四舍五入,预计将使用IEC 60559标准,"转到偶数位".因此round(0.5)是0并且round(-1.5)是-2.
> round(0.5)
[1] 0
> round(1.5)
[1] 2
> round(2.5)
[1] 2
> round(3.5)
[1] 4
> round(4.5)
[1] 4
Run Code Online (Sandbox Code Playgroud)
但我需要将以.5结尾的所有值向下舍入.所有其他值应该舍入,因为它们由round()函数完成.例:
round(3.5) = 3
round(8.6) = 9
round(8.1) = 8
round(4.5) = 4
Run Code Online (Sandbox Code Playgroud)
有快速的方法吗?
我正在寻找一个在Golang中舍入到最接近的0.05的函数.使用该函数的最终结果必须始终为0.05.
以下是我正在寻找的函数的一些输出示例:(函数Round尚不存在,我希望它可以包含在答案中)
Round(0.363636) // 0.35
Round(3.232) // 3.25
Round(0.4888) // 0.5
Run Code Online (Sandbox Code Playgroud)
我现在已经搜索了很多年,并没有找到任何答案.
有没有更短,更清晰的代码样式可以解决此问题?我正在尝试将一些float值分类为区域间文件夹。
def classify(value):
if value < -0.85 and value >= -0.95:
ts_folder = r'\-0.9'
elif value < -0.75 and value >= -0.85:
ts_folder = r'\-0.8'
elif value < -0.65 and value >= -0.75:
ts_folder = r'\-0.7'
elif value < -0.55 and value >= -0.65:
ts_folder = r'\-0.6'
elif value < -0.45 and value >= -0.55:
ts_folder = r'\-0.5'
elif value < -0.35 and value >= -0.45:
ts_folder = r'\-0.4'
elif value < -0.25 and value >= -0.35:
ts_folder = r'\-0.3' …Run Code Online (Sandbox Code Playgroud) 我想将浮点数舍入到给定的精度,例如:
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).
我想弄清楚如何围绕价格 - 两种方式.例如:
Round down
43 becomes 40
143 becomes 140
1433 becomes 1430
Round up
43 becomes 50
143 becomes 150
1433 becomes 1440
Run Code Online (Sandbox Code Playgroud)
我有这样的情况,我有一个价格范围说:
£143 - £193
Run Code Online (Sandbox Code Playgroud)
其中我想表现为:
£140 - £200
Run Code Online (Sandbox Code Playgroud)
因为它看起来更干净
有关如何实现这一目标的任何想法?