标签: double

如何在Java中将两个小数位舍入到两位小数?

这就是我将双精度数转换为2位小数的方法:

amount = roundTwoDecimals(amount);

public double roundTwoDecimals(double d) {
    DecimalFormat twoDForm = new DecimalFormat("#.##");
    return Double.valueOf(twoDForm.format(d));
}
Run Code Online (Sandbox Code Playgroud)

如果金额= 25.3569或类似的东西,这很好用,但如果金额= 25.00或金额= 25.0,那么我得到25.0!我想要的是舍入和格式化为2位小数.

java double

62
推荐指数
6
解决办法
22万
查看次数

比较C#中的double值

我有一个double名为的变量x.在代码中,x获取一个值,0.1我在'if'语句中检查它,比较x0.1

if (x==0.1)
{
----
}
Run Code Online (Sandbox Code Playgroud)

不幸的是它没有进入if声明

  1. 我应该使用Doubledouble

  2. 这背后的原因是什么?你能为此建议一个解决方案吗?

.net c# double

59
推荐指数
6
解决办法
9万
查看次数

如何使C++ cout不使用科学记数法

double x = 1500;
for(int k = 0; k<10 ; k++){
    double t = 0;
    for(int i=0; i<12; i++){
        t += x * 0.0675;
        x += x * 0.0675;
    }
    cout<<"Bas ana: "<<x<<"\tSon faiz: "<<t<<"\tSon ana: "<<x+t<<endl;      
}
Run Code Online (Sandbox Code Playgroud)

这个输出

Bas ana:3284.78 Son faiz:1784.78 Son ana:5069.55

Bas ana:7193.17 Son faiz:3908.4 Son ana:11101.6

Bas ana:15752 Son faiz:8558.8 Son ana:24310.8

Bas ana:34494.5 Son faiz:18742.5 Son ana:53237

Bas ana:75537.8 Son faiz:41043.3 Son ana:116581

Bas ana:165417 Son faiz:89878.7 Son ana:255295

Bas ana:362238 Son faiz:196821 Son …

c++ double cout scientific-notation ostream

59
推荐指数
4
解决办法
7万
查看次数

Java中的随机加权选择

我想从一个集合中选择一个随机项目,但是选择任何项目的机会应该与相关的权重成比例

示例输入:

item                weight
----                ------
sword of misery         10
shield of happy          5
potion of dying          6
triple-edged sword       1
Run Code Online (Sandbox Code Playgroud)

所以,如果我有4个可能的项目,那么获得任何一个没有权重的项目的机会将是1/4.

在这种情况下,用户获得痛苦之剑的可能性应该是三角剑的10倍.

如何在Java中进行加权随机选择?

java random double

58
推荐指数
6
解决办法
3万
查看次数

将double转换为BigDecimal并设置BigDecimal Precision

在Java中,我想获取一个double值并将其转换为a BigDecimal并将其String值打印到一定的精度.

import java.math.BigDecimal;
public class Main {
    public static void main(String[] args) {
        double d=-.00012;
        System.out.println(d+""); //This prints -1.2E-4

        double c=47.48000;
        BigDecimal b = new BigDecimal(c);
        System.out.println(b.toString()); 
        //This prints 47.47999999999999687361196265555918216705322265625 
    }
}
Run Code Online (Sandbox Code Playgroud)

它打印这个巨大的东西:

47.47999999999999687361196265555918216705322265625

并不是

47.48

我正在进行BigDecimal转换的原因有时候,double值会包含很多小数位(即-.000012),将double转换为String时会产生科学记数法-1.2E-4.我想以非科学记数法存储String值.

我想让BigDecimal总是有两个精度单位:"47.48".BigDecimal可以限制转换为字符串的精度吗?

java double bigdecimal

58
推荐指数
6
解决办法
20万
查看次数

对于纬度/经度,Java double vs BigDecimal

当存储通常格式为44.087585(即在点之前最多2个数字和6dp)的纬度/经度时,我是否需要打扰bigdecimals?

java double geospatial bigdecimal latitude-longitude

57
推荐指数
5
解决办法
3万
查看次数

所有整数值都完美地表示为双精度数吗?

我的问题是,是否保证所有整数值都具有完美的双重表示.

请考虑以下打印"相同"的代码示例:

// Example program
#include <iostream>
#include <string>

int main()
{
  int a = 3;
  int b = 4;
  double d_a(a);
  double d_b(b);

  double int_sum = a + b;
  double d_sum = d_a + d_b;

  if (double(int_sum) == d_sum)
  {
      std::cout << "Same" << std::endl;
  }
}
Run Code Online (Sandbox Code Playgroud)

对于任何架构,任何编译器,任何值ab?保证这是真的吗?i转换为的任何整数是否double总是表示为i.0000000000000和不表示为,例如,i.000000000001

我尝试了其他一些数字并且它总是如此,但无法找到关于这是巧合还是设计的任何信息.

注意:这与这个问题(除了语言)不同,因为我添加了两个整数.

c++ precision double standards ieee-754

57
推荐指数
3
解决办法
8693
查看次数

56
推荐指数
3
解决办法
5万
查看次数

如何从双c语言中获取绝对价值

我希望绝对值来自负二 - 我认为abs-function 和java一样容易使用 - 但不是!

似乎abs函数返回一个int,因为我的值为3.8951,输出为3.000000

double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?那就是 - 我想要a的绝对值double.

c double

56
推荐指数
3
解决办法
11万
查看次数

在Java中将double转换为float

我正面临与转换double为相关的问题float.实际上,我将float类型存储23423424666767在数据库中,但是当我们从下面的代码中获取数据库中的数据时getInfoValueNumeric(),它就是double类型.我们获得的价值在于2.3423424666767E13表格.

那么我们如何获得float格式数据23423424666767呢?

2.3423424666767E13 to 23423424666767

public void setInfoValueNumeric(java.lang.Double value) {
    setValue(4, value);
}


@javax.persistence.Column(name = "InfoValueNumeric", precision = 53)
public java.lang.Double getInfoValueNumeric() {
    return (java.lang.Double) getValue(4);
}
Run Code Online (Sandbox Code Playgroud)

java double floating

56
推荐指数
5
解决办法
19万
查看次数