当前位置: 首页>>代码示例>>Java>>正文


Java BigDecimal.longValueExact方法代码示例

本文整理汇总了Java中java.math.BigDecimal.longValueExact方法的典型用法代码示例。如果您正苦于以下问题:Java BigDecimal.longValueExact方法的具体用法?Java BigDecimal.longValueExact怎么用?Java BigDecimal.longValueExact使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.math.BigDecimal的用法示例。


在下文中一共展示了BigDecimal.longValueExact方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: parseSize

import java.math.BigDecimal; //导入方法依赖的package包/类
/**
 * Parses size in human readable format. It's case insensitive
 * and accepts values like
 * 10G = 10 * 1000 * 1000 * 1000
 * 10GB = 10 * 1000 * 1000 * 1000
 * 10GiB = 10 * 1024 * 1024 * 1024
 * 10 = 10
 * 10Mb = 10 * 1000 * 1000
 * 10Mib = 10 * 1024 * 1024
 * 1kiB = 1 * 1024
 *
 * @param value human readable size value
 * @param defaultValue default value used if {@code null} or non-parsable
 * @param overflowValue default value if size is too big
 * @return size in {@code long}.
 */
public static long parseSize(String value, long defaultValue, long overflowValue) {
    if(value == null) {
        return defaultValue;
    }
    Matcher m = SIZE_PATTERN.matcher(value);
    if(m.find()) {
        long num = Long.parseLong(m.group(1));
        int man = SIZE_POWER_MAP.indexOf(m.group(3).toUpperCase());
        if(man < 0) {
            man = 0;
        }
        int thresh = "I".equals(m.group(4).toUpperCase()) ? 1024 : 1000;
        BigDecimal mul = BigDecimal.valueOf(thresh).pow(man);
        try {
            return num * mul.longValueExact();
        } catch (ArithmeticException e) {
            LOGGER.warn("Value of too big ({})", value);
            return overflowValue;
        }
    } else {
        return defaultValue;
    }
}
 
开发者ID:jhkst,项目名称:dlface,代码行数:40,代码来源:Util.java

示例2: tryParse

import java.math.BigDecimal; //导入方法依赖的package包/类
public static boolean tryParse(String s, Fixed8 result) {
    try {
        BigDecimal val = new BigDecimal(s);
        result.value = val.longValueExact();
        return true;
    } catch(NumberFormatException | ArithmeticException ex) {
        return false;
    }
}
 
开发者ID:DNAProject,项目名称:DNASDKJava,代码行数:10,代码来源:Fixed8.java

示例3: convertFromFraction

import java.math.BigDecimal; //导入方法依赖的package包/类
/**
 * Converts a fraction from 0 to 1 for this field to a value.
 * <p>
 * The fractional value must be between 0 (inclusive) and 1 (exclusive).
 * It can only be returned if the {@link java.time.temporal.TemporalField#range() value range} is fixed.
 * The value is obtained by calculation from the field range and a rounding
 * mode of {@link RoundingMode#FLOOR FLOOR}.
 * The calculation is inaccurate if the values do not run continuously from smallest to largest.
 * <p>
 * For example, the fractional second-of-minute of 0.25 would be converted to 15,
 * assuming the standard definition of 60 seconds in a minute.
 *
 * @param fraction  the fraction to convert, not null
 * @return the value of the field, valid for this rule
 * @throws DateTimeException if the value cannot be converted
 */
private long convertFromFraction(BigDecimal fraction) {
    ValueRange range = field.range();
    BigDecimal minBD = BigDecimal.valueOf(range.getMinimum());
    BigDecimal rangeBD = BigDecimal.valueOf(range.getMaximum()).subtract(minBD).add(BigDecimal.ONE);
    BigDecimal valueBD = fraction.multiply(rangeBD).setScale(0, RoundingMode.FLOOR).add(minBD);
    return valueBD.longValueExact();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:24,代码来源:DateTimeFormatterBuilder.java


注:本文中的java.math.BigDecimal.longValueExact方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。