相关疑难解决方法(0)

iOS Objective-C如何获得2位小数舍入浮点值?

我有一个

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说的不同......奇怪.但我得到了我想要的东西,所以感谢浪费时间追逐任何东西:)

编辑我很乐意选择你们所有人作为正确的答案,但由于我只能选择一个,我选择了第一个好的答案,并附加了解释(最后两个).

floating-point decimal objective-c rounding ios

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

真实与浮动点对金钱

为什么当我将SQL Server中的40.54的值保存到Real类型的列时,它会返回给我一个更像40.53999878999而不是40.54的值?我已经看过几次,但从来没有弄明白为什么会发生这种情况.有没有其他人遇到过这个问题,如果是这样的话?

sql-server types

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

为什么printf圆形浮点数?

我正在尝试使用打印一些浮点数printf.例如:

int main()
{
    printf("%.1f",76.75); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:76.8

我对结果有一些疑问.

首先,为什么不打印76.7?

第二,它是如何围绕这个数字的呢?

c floating-point printf

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

如何设置浮点数的精度

有人可以解释一下如何用C函数选择浮点精度吗?

例子:

theFatFunction(0.666666666, 3) 返回0.667

theFatFunction(0.111111111, 3) 返回0.111

c floating-point precision

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

如何在Objective-C中将2位小数舍入为十进制

让我知道如何在Objective-C中将2位小数舍入为十进制.

我想这样做.(句子后面的所有数字都是浮点值)

•圆形

10.118 => 10.12

10.114 => 10.11

•ceil

10.118 => 10.12

•地板

10.114 => 10.11

谢谢你查看我的问题.

objective-c ios

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

如何在iphone中将十进制数舍入为2位?

我们如何在iphone中将十进制数舍入为2位?

例如 ,

  1. 5345 - > 53

  2. 570 - > 57

  3. 89523 - > 90

我尝试使用nsformatter,这是我使用的代码,

    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumIntegerDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithInt:570]];

    [formatter release];
    NSLog(@"%@",numberstring);
Run Code Online (Sandbox Code Playgroud)

即使将舍入模式更改为不同的选项后,我仍然将值设置为70.请在这件事上给予我帮助

谢谢,维诺德.

iphone rounding nsformatter

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

圆形正值半到2位小数

通常,舍入到小数点后2位非常容易

printf("%.2lf",<variable>);
Run Code Online (Sandbox Code Playgroud)

但是,舍入系统通常会舍入到最近的偶数.例如,

2.554 -> 2.55
2.555 -> 2.56
2.565 -> 2.56
2.566 -> 2.57
Run Code Online (Sandbox Code Playgroud)

而我想要实现的是

2.555 -> 2.56
2.565 -> 2.57
Run Code Online (Sandbox Code Playgroud)

事实上,四舍五入在C中是可行的,但仅对于整数;

int a = (int)(b+0.5)
Run Code Online (Sandbox Code Playgroud)

所以,我要问的是如何在正值上用2位小数而不是Integer做同样的事情来实现我之前说的打印.

c number-formatting output-formatting

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

C++四舍五入到_nths的地方

可能重复:
C中的舍入数字为2个小数位数

我目前正在linux机器上学习c ++.我有相应的四舍五入或相应的代码,但只有整数.如何将此代码更改为舍入到百分位或任何其他小数?我不会问我是不是已经尝试到处寻找:(而且一些答案似乎有很多线条似乎是一个简单的功能!

double round( double ){
return floor(value + 0.5 );
}
Run Code Online (Sandbox Code Playgroud)

c++

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

改变数字精度

例如,如何更改数字的精度:float n = 1.2345并将其存储回变量'n'并将其更改为1.23

c++

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

C ++如何为浮点数设置固定的十进制精度

我有一个API调用,它返回一个double。双精度数的十进制长度可以从很多小数位到几个小数位不等(全部归结为执行器的状态)。此双精度表示执行器范围半径上的当前位置。我对这样的详细数字不感兴趣,因为它会给系统增加很多噪音。我一直在使用浮点数来节省空间,但仍然有6-8十进制长度的浮点数。我对地板或天花板不感兴趣,只是因为它不能完成我想要的工作。例如,我有数字:

-2.05176
-0.104545
 0.30643
 0.140237
 1.41205
-0.176715
 0.559462
 0.364928
Run Code Online (Sandbox Code Playgroud)

无论如何,我都希望将精度设置为2个小数位。我不是在谈论std :: cout的输出精度,我知道如何设置它。我说的是浮子的实际精度。即:我对浮点数感兴趣,这些浮点数将具有0.XX格式和0.XX00000000000的实际精度。因此,将上面的列表转换为:

-2.05
-0.10
 0.30
 0.14
 1.41
-0.17
 0.55
 0.36
Run Code Online (Sandbox Code Playgroud)

我知道boost有一个数值转换模板,但是我不知道如何使用较低的精度从float转换为float。有人可以帮忙吗?

c++ boost rounding numeric-conversion

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