iOS中NSString转float失真问题的解决办法
来源:互联网 发布:Laymine java 编辑:程序博客网 时间:2024/05/19 01:10
直接打印[@"21.2" floatValue],得到的结果是
————————————————————————————
————————————————————————————
百度上搜了很多,有的说用doubleValue替换floatValue,要是从根本上解决问题还得使用NSDecimalNumber
写了一个NSString的分类来方便运算,这样传入传出的数值都是NSString类型
分别是
1 A+B
2 A-B
3 A*B
4 A/B
5 A>B
6A==B
7 A<B
.h
//// NSString+DecimalNumber.h// CEB//// Created by yfc on 17/5/9.////#import <Foundation/Foundation.h>////解决str转float精度失真问题//@interface NSString(NSString_DecimalNumber)+(NSString *)A:(NSString *)a jiaB:(NSString *)b;+(NSString *)A:(NSString *)a jianB:(NSString *)b;+(NSString *)A:(NSString *)a chengyiB:(NSString *)b;+(NSString *)A:(NSString *)a chuyiB:(NSString *)b;+(BOOL)A:(NSString *)a dayuB:(NSString *)b;+(BOOL)A:(NSString *)a dengyuB:(NSString *)b;+(BOOL)A:(NSString *)a xiaoyuB:(NSString *)b;@end.m
//// NSString+DecimalNumber.m// CEB//// Created by yfc on 17/5/9.////#import "NSString+DecimalNumber.h"@implementation NSString(NSString_DecimalNumber)+(NSString *)A:(NSString *)a jiaB:(NSString *)b;{ NSDecimalNumber *num1 = [NSDecimalNumber decimalNumberWithString:a]; NSDecimalNumber *num2 = [NSDecimalNumber decimalNumberWithString:b]; NSDecimalNumber *resultNum = [num1 decimalNumberByAdding:num2]; return [resultNum stringValue];}+(NSString *)A:(NSString *)a jianB:(NSString *)b;{ NSDecimalNumber *num1 = [NSDecimalNumber decimalNumberWithString:a]; NSDecimalNumber *num2 = [NSDecimalNumber decimalNumberWithString:b]; NSDecimalNumber *resultNum = [num1 decimalNumberBySubtracting:num2]; return [resultNum stringValue];}+(NSString *)A:(NSString *)a chengyiB:(NSString *)b;{ NSDecimalNumber *num1 = [NSDecimalNumber decimalNumberWithString:a]; NSDecimalNumber *num2 = [NSDecimalNumber decimalNumberWithString:b]; NSDecimalNumber *resultNum = [num1 decimalNumberByMultiplyingBy:num2]; return [resultNum stringValue];}+(NSString *)A:(NSString *)a chuyiB:(NSString *)b;{ NSDecimalNumber *num1 = [NSDecimalNumber decimalNumberWithString:a]; NSDecimalNumber *num2 = [NSDecimalNumber decimalNumberWithString:b]; NSDecimalNumber *resultNum = [num1 decimalNumberByDividingBy:num2]; return [resultNum stringValue];}+(BOOL)A:(NSString *)a dayuB:(NSString *)b;{ NSDecimalNumber *discount1 = [NSDecimalNumber decimalNumberWithString:a]; NSDecimalNumber *discount2 = [NSDecimalNumber decimalNumberWithString:b]; NSComparisonResult result = [discount1 compare:discount2]; if (result == NSOrderedAscending) { return NO; } else if (result == NSOrderedSame) { return NO; } else if (result == NSOrderedDescending) { return YES; } return NO;}+(BOOL)A:(NSString *)a dengyuB:(NSString *)b;{ NSDecimalNumber *discount1 = [NSDecimalNumber decimalNumberWithString:a]; NSDecimalNumber *discount2 = [NSDecimalNumber decimalNumberWithString:b]; NSComparisonResult result = [discount1 compare:discount2]; if (result == NSOrderedAscending) { return NO; } else if (result == NSOrderedSame) { return YES; } else if (result == NSOrderedDescending) { return NO; } return NO; }+(BOOL)A:(NSString *)a xiaoyuB:(NSString *)b;{ NSDecimalNumber *discount1 = [NSDecimalNumber decimalNumberWithString:a]; NSDecimalNumber *discount2 = [NSDecimalNumber decimalNumberWithString:b]; NSComparisonResult result = [discount1 compare:discount2]; if (result == NSOrderedAscending) { return YES; } else if (result == NSOrderedSame) { return NO; } else if (result == NSOrderedDescending) { return NO; } return NO; }@end
调用方法是
需要示例工程的可以联系我
0 0
- iOS中NSString转float失真问题的解决办法
- float失真问题
- VC++中StretchBlt图像失真问题的解决办法
- VC++中StretchBlt图像失真问题的解决办法
- iOS中NSString的分割显示问题(Label中)
- ios编程:NSString与int和float的相互转换
- 【iOS开发】NSString与int和float的相互转换
- C# winform imageList控件加载图像失真问题的解决办法
- 【MFC中关于插入位图失真的解决办法】
- ico文件失真的解决办法
- object-c中NSString与int和float NSDictionary NSString json的相互转换
- 关于ios中 NSString在方法中进行修改,需要传该NSString的指针的指针的问题
- ios UIView 转 UIImage,解决模糊失真问题
- ios NSString format 保留小数点 float double
- nsstring和int float的相互转换(转)
- 在学习iOS的MRC管理中,遇到的retain引起的循环问题、NSString问题
- iOS NSString字符串反转的问题
- iOS NSString retainCount遇到的问题
- springmvc+mybatis+mysql 根据生日计算年龄
- 工厂模式
- java Swing中的布局模式
- Python 3基础教程42-锁
- unity2D的物理碰撞和非物理碰撞的认识
- iOS中NSString转float失真问题的解决办法
- Apalis TK1 运行 Android 7.1
- 关于Linux-网络通信工具
- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't
- mysql-Innodb事务隔离级别-repeatable read详解(转)
- SQL循环更字段的值
- 修改Android7.1.1里的Settings使设备能默认安装未知来源的应用
- TCP、UDP、IP 协议分析
- stylus用法