相关疑难解决方法(0)

三角函数值与现实不符

toRadians()用来转换值并找到这样的三角函数

dataMain = Math.cos(Math.toRadians(dataSub);

但我有一个问题,如 dataSub = 60

答案应该是0.5 我的程序中的答案0.50000000000001

甚至 dataSub = 30

dataMain = Math.sin(Math.toRadians(dataSub);

在我的程序中回答的是 0.49999999999994

我该如何解决这个问题?

math floating-point android trigonometry

1
推荐指数
1
解决办法
250
查看次数

四舍五入

嘿伙计们,我想要舍入到小数点后3位.

我使用了以下代码.

this.hours = Round(hours + (mins / 60), 3);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我哪里出错了?谢谢

java

0
推荐指数
1
解决办法
2416
查看次数

在Java中格式化小数位

我想在Java中将double格式化为2位小数.

我已经阅读了以下帖子: 如何在Java中将数字舍入到n个小数位

出于某种原因,这些方法中的每一种都无法处理我拥有的某些数字.

例如:

DecimalFormat df = new DecimalFormat("#.##");
normalizedValue = Double.valueOf(df.format(normalizedValue));
Run Code Online (Sandbox Code Playgroud)

如果我打印normalizedValue我得到的结果类似于以下内容:

-78.64000000000001

18.97

59.469999999999985

-63.120000000000005
Run Code Online (Sandbox Code Playgroud)

(注意:有些格式正确...有些不是)

所以,这些方法似乎是圆的,但我需要的东西将删除2位小数后的所有小数...任何建议?

谢谢.

java double formatting decimal

0
推荐指数
1
解决办法
1937
查看次数

不使用库,如何将浮点数舍入到C中的两个位置?

我正在学习操作系统编程,我需要假设我的资源很少.

那么我应该如何计算2/3并将其截断为两位小数呢?我可以使用任何数学算法或位操作技巧吗?

c bit-manipulation

0
推荐指数
1
解决办法
768
查看次数

如何解决这个舍入要求?

我有以下要求来舍入金额:

1.2448 -> 1.25
3.349  -> 3.35
0.474  -> 0.47
Run Code Online (Sandbox Code Playgroud)

我已经尝试了BigDecimal的所有可能模式.setScale(2,RoundingMode.)方法,没有任何成功.结果如下:

UP:        1.25,  3.35,  0.48
HALF_UP:   1.24,  3.35,  0.47
CEILING:   1.25,  3.35,  0.48
FLOOR:     1.24,  3.34,  0.47
DOWN:      1.24,  3.34,  0.47
HALF_DOWN: 1.24,  3.35,  0.47
HALF_EVEN: 1.24,  3.35,  0.47
Run Code Online (Sandbox Code Playgroud)

我也试过使用BigDecimal.round(),结果也不好.

如何以所需方式舍入金额?

编辑:

为什么我真的需要以这种看似奇怪的方式进行回合?

在我们正在开发的新软件中,我们需要重现舍入行为或遗留软件(这是业务需要四舍五入的方式)

解:

我绝对想留下BigDecimals用于我的所有计算.

所以,最后我想出了这个简单的函数来进行"渐进式"舍入:

public static BigDecimal roundAmount(BigDecimal amount) {
    for (int i = amount.scale(); i >= 2; i--) {
        amount = amount.setScale(i, RoundingMode.HALF_UP);
    }
    return amount;
}
Run Code Online (Sandbox Code Playgroud)

java rounding bigdecimal

0
推荐指数
1
解决办法
518
查看次数

在java中舍入为double

我有一个存储在文本文件中的双值对角矩阵.

size(file)~410 Mo
Run Code Online (Sandbox Code Playgroud)

我想通过舍入我的双值来减小大小.

如果它是一个好主意,如何在java中做到这一点

0.1706524958886193=>0.17
Run Code Online (Sandbox Code Playgroud)

我需要稍后在matlab中使用这个文件

当我尝试

dlmread(文件)我出现内存不足错误

java double matlab file rounding

0
推荐指数
1
解决办法
445
查看次数

如何将任意数字显示为5位小数

  1. 如何显示任意数字到5位小数.例如0.0至0.00000,12.63至12.63000.

  2. 如何显示任何长度为8的数字,例如12.1到12.10000,2.1234567到2.123456

java android

0
推荐指数
1
解决办法
796
查看次数

如何将Double值四舍五入到两个精度

我有Double值 Double val = 49.569632

我怎么能以农达val得到49.57

java math

0
推荐指数
1
解决办法
793
查看次数

如何在Java中显示十进制数?

我使用float来显示十进制数字,但有时它不会显示正确的结果.

例如,对于6.2/1000,结果为0.0061999997.

我知道为什么会这样,但我想知道有没有办法显示正确的结果,在这种情况下,0.0062?

编辑: 如何在Java中将数字舍入到n个小数位不能回答我的问题,那么为什么你在其他地方已经回答了我的问题?

我写的数字只是一个例子.在应用程序中,用户可以输入任意数字并将其与任何其他数字相乘或相乘,因此结果可能没有任何小数点,也许它将有4位小数,也许它将有7位小数,...

java android

-5
推荐指数
1
解决办法
224
查看次数

只有一个十进制的Java双值

可能重复:
如何在Java中将数字舍入到n个小数位

我有像"1234.9678"这样的Double值.我想只返回一个小数,没有舍入或上限.

我用这种方式,但它返回"1234.96"

public double roundTwoDecimals(double d) {

DecimalFormat twoDForm = new DecimalFormat("#.##");

return Double.valueOf(twoDForm.format(d)); }
Run Code Online (Sandbox Code Playgroud)

我只想要"1234.9",

我甚至用这种方式......但没有运气......任何人都可以帮忙吗?

double d = 1234.9678;
int decimalPlace = 1;
BigDecimal bd = new BigDecimal( Double.toString(d) );
bd = bd.setScale( decimalPlace, BigDecimal.ROUND_HALF_UP );
System.out.println( bd.doubleValue() );
Run Code Online (Sandbox Code Playgroud)

java decimal bigdecimal

-6
推荐指数
1
解决办法
4991
查看次数