`
lvhuiqing
  • 浏览: 256234 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

EffecitveJava_对要求精确计算的场合不要使用double,float

 
阅读更多
<p>EffecitveJava_对要求精确计算的场合不要使用double,float</p>

<p><textarea cols="50" rows="15" name="code" class="java:showcolumns">public static void doubleError() {
double founds = 1.00;// 口袋里一共有一块钱
int itemBought = 0;// 记录可以买几个糖果
for (double price = 0.1; founds &gt;= price; price += 0.1) {// 糖果的价格依次曾加0.1
founds -= price;// 每次买一个,口袋里的钱就要花掉一些
itemBought++;// 每次买一个,手中糖果的数量增加一次
}
System.out.println(itemBought);
System.out.println(founds);
}

public static void bigDecimalSuccess() {
BigDecimal founds = new BigDecimal("1.00");// 口袋里一共有一块钱
BigDecimal TEN_CENTS = new BigDecimal("0.1");
int itemBought = 0;// 记录可以买几个糖果
for (BigDecimal price = TEN_CENTS; founds.compareTo(TEN_CENTS) &gt;= 0; price = price
.add(TEN_CENTS)) {// 糖果的价格依次曾加0.1
founds = founds.subtract(price);// 每次买一个,口袋里的钱就要花掉一些
itemBought++;// 每次买一个,手中糖果的数量增加一次
}
System.out.println(itemBought);
System.out.println(founds.doubleValue());
}</textarea></p>
分享到:
评论

相关推荐

    Java 精确计算-double-float-String

    标题中的"Java 精确计算 - double-float-String"指向的是Java中处理浮点数(double和float)以及字符串表示的数值时可能遇到的精度问题,以及如何通过特定方法实现精确计算。描述中提到的链接指向了一个具体的博客...

    long_double_float_implicit.rar_float

    标题 "long_double_float_implicit.rar_float" 暗示了我们正在探讨与浮点数类型相关的编程主题,特别是`long double`和`float`。在C语言或类似的编程环境中,`long double`通常代表最高精度的浮点数类型,而`float`...

    iOS 解决floatValue,doubleValue等计算不精确问题,一句话解决精确计算,精确比较

    5. **利用String的`floatValue`和`doubleValue`**:虽然`floatValue`和`doubleValue`在计算时可能出现不精确,但在将字符串转换为浮点数时,它们可以提供精确的转换。例如,从用户输入或者配置文件中读取浮点数时,...

    float、double类型介绍.zip

    标题中的“float、double类型介绍”指的是在编程语言中,如C++、Java或Python等,用于表示浮点数的数据类型。浮点数是计算机科学中用来表示小数的一种方式,因为它们不是精确的,而是近似的。浮点类型通常分为两种...

    java_double_精度

    以下是使用 BigDecimal 类来对 double 类型的数据进行精度处理的示例代码: ```java public static double round(double value, int scale, int roundingMode) { BigDecimal bd = new BigDecimal(value); bd = bd...

    Double类型精确计算

    Double类型精确计算,加法,减肥,乘除

    float_double_explicit.rar_float

    标题中的“float_double_explicit.rar_float”暗示了这个压缩包可能包含了与浮点数(float)和双精度浮点数(double)处理相关的代码示例或测试用例,特别是关于明确(explicit)类型的转换。描述提到“Implements a ...

    8_int_to_double_float.zip

    标题 "8_int_to_double_float.zip" 暗示了这个压缩包内容可能涉及将8位整型(int)数据转换为双精度浮点型(double float)的数据处理操作。这通常在数字信号处理、计算机图形学或嵌入式系统等IT领域中出现,尤其是...

    Java实现的浮点类的精确计算

    在Java中,浮点数(float和double)是基于IEEE 754标准的,它们使用二进制浮点表示法,这导致在进行除法、乘法、加法和减法等操作时可能会出现非预期的精度损失。例如,两个看似相等的浮点数在计算后可能因为舍入...

    基于C++浮点数(float、double)类型数据比较与转换的详解

    例如,使用`%.8lf`格式化`float`可能无法避免精度丢失,而在适当情况下,对`double`使用`%.20lf`可以保留更多位数,减少精度损失。 3. **浮点数比较**: 直接使用`==`操作符比较两个`double`类型的浮点数是否相等...

    float_double.c

    将32bit的float型数据 转换为 64bit的double类型存储在内存中,跨平台可用。解决C51等平台double类型为32bit存储的问题。

    test2_JavaDouble类型比较大小_java编程_

    此外,`Double`类还提供了一个静态方法`Double.doubleToLongBits(double value)`,它可以将`Double`值转换为`long`的位表示,这样可以基于位模式来比较两个浮点数,从而避免浮点计算的不精确性。比较位模式后再转换...

    cls_align_longdouble.rar_float

    标题中的"cls_align_longdouble.rar_float"暗示了我们正在探讨一个与浮点数(float)对齐相关的主题,特别是在类(class)或结构体(struct)中使用long double类型时的对齐规则。描述指出我们要检查float类型的对齐...

    jni 使用float double

    int float double string char * C-&gt;Java Java-&gt;C 实例

    S7-200SMART 64位浮点数转换为32位浮点数指令库文件Double_to_Float.rar

    S7-200SMART 64位浮点数转换为32位浮点数指令库文件Double_to_Float

    float和double

    float和double浮点数类型的精度和范围解析 浮点数类型float和double是编程语言中最常用的数值类型,但是它们...因此,在商业计算中,我们应该使用java.math.BigDecimal来避免精度问题,而不是使用float和double类型。

    Test_int_to_float.rar_float_float linux

    1. **类型转换函数**:在C语言中,我们可以使用`float`或`double`函数将整型转换为浮点型。例如,`float myFloat = (float)myInt;`这里`(float)`是类型转换操作符,将`myInt`的值转换为浮点型并赋值给`myFloat`。 2...

    float与double的范围和精度

    在实际应用中,float和double的精度对计算结果的准确性产生了重要的影响。例如,在科学计算和数据分析中,需要使用double类型来保证足够的精度。 3. Oracle中的Number类型 在Oracle中,Number类型可以用来存储0、...

    C# 按照IEEE 754标准对Float和Double类型进行转换

    在实际编程中,`float`和`double`的转换常常应用于科学计算、图形渲染、金融计算等领域,因此了解并熟练掌握IEEE 754标准和C#中的浮点数处理是非常关键的。 文件列表中的"UniEncoder.sln"和"UniEncoder.suo"通常与...

    float_double存储问题

    float 和 double 是 C 语言和 C# 语言中最常用的浮点类型,它们分别使用单精度和双精度来存储浮点数据。 float 数据占用 32bit,而 double 数据占用 64bit。 在 IEEE 的规范下,float 遵从的是 IEEE R32.24,而 ...

Global site tag (gtag.js) - Google Analytics