gpt4 book ai didi

iphone - 在 NSNumberFormatter 中禁用四舍五入(使用语言环境)

转载 作者:行者123 更新时间:2023-12-02 17:48:09 25 4
gpt4 key购买 nike

我正在使用多个语言环境编号。示例:

  1. 1.234.567,89 - 德语
  2. 1'234'567.89 - 瑞士
  3. 1,234,567.89 - 美国

我的代码将小数点分隔符后的最后一位向上舍入:

NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setMinimumFractionDigits:2];
[formatter setMaximumFractionDigits:2];

double myValue = [[formatter numberFromString:@"123.458"] doubleValue];
double myValue2 = [[formatter numberFromString:@"123.444"] doubleValue];

NSString *rezult = [formatter stringFromNumber:[NSNumber numberWithDouble:myValue]];
NSString *rezult2 = [formatter stringFromNumber:[NSNumber numberWithDouble:myValue2]];

NSLog(@"rezult = %@", rezult); //gives 123.46 - incorrect
NSLog(@"rezult2 = %@", rezult2);//gives 123.44 - correct

请建议如何防止舍入。

请记住,我不能这样做:

double aDouble = 1234.56789;
NSString *stri = [NSString stringWithFormat:@"%.2f", aDouble];
NSLog(@"%@", stri); //result is 1234.56 - correct (not rounded up to 1234.57)

...因为我必须使用 *formatter 设置 *stri(见上文)。

我想 NSNumberFormatter 一定有一些额外的设置,不是吗?

提前致谢。

编辑 1

解决方案:在声明 NSNumberFormatter 之后,再说:

[formatter setRoundingMode: NSNumberFormatterRoundDown];

感谢@Price 提供的快速解决方案。主题关闭。

最佳答案

你可以添加这个:

[formatter setRoundingMode: NSNumberFormatterRoundDown];

关于iphone - 在 NSNumberFormatter 中禁用四舍五入(使用语言环境),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com