美文网首页
iOS科学计算,舍入规则

iOS科学计算,舍入规则

作者: summerNight | 来源:发表于2018-01-09 10:37 被阅读17次

科学计数法

项目在遇到金额问题的时候,无论用float还是double结果都是会有误差的。这时候就需要用科学计数法。在iOS中就是用NSDecimalNumber这个类

基本使用

/*
typedef NS_ENUM(NSUInteger, NSRoundingMode) {
    NSRoundPlain,   // 四舍五入
    NSRoundDown,    // 只舍不入
    NSRoundUp,      // 只入不舍
    NSRoundBankers  // 这个是特殊的四舍五入。保留位数的后一位为5时,根据保留位数的奇偶性来确定舍入规则。例如:0.235保留两位小数,5前面为3,奇数要进1,结果为0.24。如果是0.245,5前面为4,偶数要舍,结果为0.24。
};
// scale 保留几位小数
// Exactness:进度异常、Overflow:向上溢出、Underflow:向下溢出、DivideByZero:除数为0。当参数为YES出错会抛出异常,为NO时忽略异常。返回nil.
*/
NSDecimalNumberHandler *handler = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundUp scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:YES];

NSDecimalNumber *A = [NSDecimalNumber decimalNumberWithString:@"0.525"];
NSDecimalNumber *B = [NSDecimalNumber decimalNumberWithString:@"2"];
// 乘 1.05
    NSDecimalNumber *mulNum = [A decimalNumberByMultiplyingBy:B withBehavior:roundUp];
    // 和 2.52
    NSDecimalNumber *sum = [A decimalNumberByAdding:B withBehavior:roundUp];
    // 差 -1.48
    NSDecimalNumber *jian = [A decimalNumberBySubtracting:B withBehavior:roundUp];
    // 商 0.26
    NSDecimalNumber *div = [A decimalNumberByDividingBy:B withBehavior:roundUp];
    // 幂运算 0.14
    NSDecimalNumber *square = [A decimalNumberByRaisingToPower:3 withBehavior:roundUp];
    // 指数运算 200
    NSDecimalNumber *zhishu = [B decimalNumberByMultiplyingByPowerOf10:2 withBehavior:roundUp];

相关文章

  • iOS科学计算,舍入规则

    科学计数法 项目在遇到金额问题的时候,无论用float还是double结果都是会有误差的。这时候就需要用科学计数法...

  • Swift中Double类型数据的Rounded函数

    Swift中Double类型数据有个Rounded函数,用于对小数进行舍入操作,舍入规则是可以自定义的:

  • js toFixed()方法的坑

    javascript中toFixed使用的是银行家舍入规则。 银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五...

  • SAS函数应用技巧

    与数值计算有关的函数 下表列出了几个与数值计算有关的函数: 其中,round()函数是指定一个舍入值,然后将x舍入...

  • 深入浅出iOS浮点数精度问题 (下)

    目录 一,加减乘除 二,舍入 三,封装 在 深入浅出iOS浮点数精度问题 (上) 中,我们提到计算机内部是无法用浮...

  • Kotlin BigDecimal 精确计算

    完整工具类 setScale 方法用于格式化小数点 其它计算方式说明 ROUND_UP舍入远离零的舍入模式。在丢弃...

  • 真实的世界

    现实世界某种程度上就是科学世界。 科学世界的底层代码是:数学。 数学是抽象的计算逻辑。 数学是游戏的规则。没有规则...

  • 380,BigDecimal的好处,可以返回Int BigDec

    setScale 方法用于格式化小数点 其它计算方式说明 1.ROUND_UP舍入远离零的舍入模式。在丢弃非零部分...

  • 人工粘性

    要说明白CFD计算中的人工粘性,便没有办法绕开其他几个概念,他们分别是: 截断误差 舍入误差 修正方程 先说舍入误...

  • Excel函数(七):舍入计算

    汇总本篇文章里用到的函数:ROUND; ROUNDUP; ROUNDDOWNCEILING; FLOOR (可以给...

网友评论

      本文标题:iOS科学计算,舍入规则

      本文链接:https://www.haomeiwen.com/subject/virwnxtx.html