标签: division

Haskell中Double值相除时的精度问题

我试图在 Haskell 中将双精度浮点数 ( Double)2.0连续除以一百次。

当我得到值 时5960464477539.06250,将该值除以2.00000结果为2.9802322387695313e12(或2980232238769.53130)。从数学上来说,正确的结果是2980232238769.53125,但这里存在一些精度损失。

import Text.Printf (printf)
import System.Exit (exitSuccess)

main = do
   n <- readLn :: IO Double
   reading n 0

reading n c = do
   if c == 100
      then exitSuccess
      else printf "%.5f\n" n
   reading (n/2.0) (c+1)
Run Code Online (Sandbox Code Playgroud)

将值直接除以ghci

Prelude> 5960464477539.06250/2
2.9802322387695313e12
Run Code Online (Sandbox Code Playgroud)

我已经阅读过有关 的内容Data.Scientific,但我无权访问该模块。如果没有它,在这种情况下有什么办法可以提高准确性吗?

precision haskell division

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

为什么2个浮点数之间的这种简单划分不适用于java?

System.out.println((26.55f/3f));
Run Code Online (Sandbox Code Playgroud)

要么

System.out.println((float)( (float)26.55 / (float)3.0 ));
Run Code Online (Sandbox Code Playgroud)

等等

返回结果8.849999.不应该8.85.

任何人都可以解释这一点,还是我们都应该避免使用花车?

java floating-point division

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

汇编语言部门 - 剩余DX寄存器

我的程序差不多完成了.我试图将CBA0123h除以B000h.商出来了.但是,应该在dx寄存器中的余数应该是:EA61(http://www.miniwebtool.com/hex-calculator/?number1=CBA0123&operate=4&number2=B000),而不是它的A123.我认为这与小端或其他东西有关.但我需要解决这个问题.我怎么能够?我旋转位?我以前从未见过如何做到这一点.如何从这个除法问题中得到正确的余数?

int main(int argc, char* argv[])
{
unsigned short int IDQUO = 0x0;
unsigned short int IDREM = 0x0;

    mov     dx, 0CBAh       
    mov     ax, 0123h       
    mov     bx, 0B000h      
    div     bx              
    mov     IDQUO, ax       
    mov     IDREM, dx       
return(0);
}
Run Code Online (Sandbox Code Playgroud)

c x86 assembly division inline-assembly

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

预期结果在1和0之间的除法总是给出0

可能重复:
C中整数除法的行为是什么?

当我使用应该在1和0之间的答案进行除法计算时,它总是返回0.

试试这个:

float a = 1;
float b = 2;
float c = a / b; //variable divide by variable gives 0.5 as it should
float d = 1 / 2; //number divide by number gives 0
float e = 4 / 2;
NSLog(@"%f %f %f %f %f", a,b,c, d, e);
Run Code Online (Sandbox Code Playgroud)

我从控制台得到这个:

2013-01-17 14:24:17.512 MyProject [1798:c07] 1.000000 2.000000 0.500000 0.000000 0.500000

我不知道发生了什么事.

math integer objective-c division

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

为什么(13/3 == 4)是真的?

((13 / 3 == 4) == true) 
Run Code Online (Sandbox Code Playgroud)

为什么这等于真?13/3 = 4.3333和4.333不等于4.它是否自动转换为整数?和圆?

我在Java EE 8中测试过它.

java division integer-division

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

如何在 C# 中检查数字是否可以被另一个数字整除而无需条件检查(if、三元等)

我有一个数字,例如 X。我想检查它是否可以被 Y(另一个数字)整除。如果能被Y整除,我需要返回1,否则返回0。但是我不允许使用if条件、三元运算符、等于等。有什么建议吗?

c# if-statement division conditional-operator

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

将整数除以16而不使用除法或强制转换

好的......让我改一下这个问题......

如何在不使用除法或转换加倍的情况下获得整数的x 16th ...

optimization division fractions

-2
推荐指数
1
解决办法
865
查看次数

C#数学师不正确

可能重复:
除法返回零
简单计算由于某种原因不起作用

为什么是这样:

int prozent = (totalkcals / 2000) * 100;
Run Code Online (Sandbox Code Playgroud)

返回0?

totalkcals在这种情况下是567,我仔细检查过它.

c# math division

-2
推荐指数
1
解决办法
293
查看次数

c#console程序将6乘2除以得到27

编码项目时c#出错了,它将所有不同的数据类型和结果进行划分和倍增27或26或108,如何解决?! 在此输入图像描述

c# console-application division

-3
推荐指数
1
解决办法
74
查看次数

BigDecimal 除法方法返回 0 还是 ArithmeticException?

当我尝试使用以下方法划分 BigDecimals 时:

divide(divisor, RoundingMode.HALF_UP)

它返回 0

在此处输入图片说明

但是,如果我没有这样的舍入模式就这样做:

divide(divisor)

我得到一个 ArithmeticException

在此处输入图片说明

我不在乎数字是否不是精确的十进制表示。如何在不得到 0 或异常的情况下划分 BigDecimals?

java double rounding division bigdecimal

-3
推荐指数
1
解决办法
531
查看次数