相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

如何处理JavaScript中的浮点数精度?

我有以下虚拟测试脚本:

function test() {
  var x = 0.1 * 0.2;
  document.write(x);
}
test();
Run Code Online (Sandbox Code Playgroud)

这将打印结果0.020000000000000004,只应打印0.02(如果您使用计算器).据我所知,这是由于浮点乘法精度的误差.

有没有人有一个很好的解决方案,以便在这种情况下,我得到正确的结果0.02?我知道有类似的功能toFixed或舍入将是另一种可能性,但我想真正打印整个数字没有任何切割和舍入.只是想知道你们其中一个人是否有一些漂亮,优雅的解决方案.

当然,否则我会转到大约10位左右.

javascript floating-point

552
推荐指数
22
解决办法
34万
查看次数

使用Float或Decimal作为会计应用程序的美元金额?

我们正在用VB.NET和SQL Server重写我们的旧会计系统.我们引入了一个新的.NET/SQL程序员团队来进行重写.大多数系统已经使用Floats完成了Dollar数量.我编程的遗留系统语言没有Float,所以我可能会使用Decimal.

你有什么建议?

Float或Decimal数据类型应该用于美元金额吗?

两者的优点和缺点有哪些?

在我们的日常scrum中提到的一个骗局是,当你计算一个返回超过两个小数位的结果的金额时,你必须要小心.听起来你必须将金额四舍五入到小数点后两位.

另一个Con是所有显示和打印金额必须有一个显示两个小数位的格式声明.我注意到有几次没有这样做,金额看起来不正确.(即10.2或10.2546)

专家是Float只占用磁盘上的8个字节,其中Decimal占用9个字节(十进制12,2)

vb.net sql-server accounting database-design currency

76
推荐指数
9
解决办法
4万
查看次数

浮点数上的Python模数

任何人都可以解释模运算符在Python中的工作原理吗?我不明白为什么3.5 % 0.1 = 0.1.

python modulo

36
推荐指数
2
解决办法
4万
查看次数

javascript如何判断一个数字是否是另一个数字的倍数

我正在为一家面料商店建造一个计算量很大的购物车,并且发现自己需要对用户输入的长度*每米的基本价格进行计算,然后检查结果以查看它是否是模式长度的倍数.如果它不是倍数,我需要找到最接近的模式长度倍数并将结果更改为.

我还需要能够在PHP中完成相同的计算,但如果有人可以帮我解决数学问题,我可以移植任何需要自己翻译的东西.

我正在使用jQuery 1.6.2并且已经完成了计算的第一部分,我只需要根据模式长度检查(米*价格)的结果.

任何帮助非常感谢

编辑:这些计算都涉及价格和模式长度的2位小数.用户输入的长度也可以包含小数.

javascript math jquery

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

Javascript浮点减法

我想知道如何在javascript中减去两个负浮点数.我试过了:

alert(-0.2-0.1);
Run Code Online (Sandbox Code Playgroud)

结果是-0.30000000000000004.难道我做错了什么?我该怎么做-0.3

javascript floating-point

15
推荐指数
2
解决办法
2万
查看次数

Javascript Math.cos和Math.sin不准确.有什么解决方案吗?

Javascript Math trigonomerial methos返回错误的结果.尝试

alert(Math.sin(Math.PI));
Run Code Online (Sandbox Code Playgroud)

它不会返回0.

也许问题是javascript十进制数精度.是否有任何工作量可以得到正确的结果?

javascript math

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

为什么2.4 mod 0.8返回0.8

为什么模数计算2.4乘0.8返回0.8?它不应该返回0吗?

它发生在PHP,via fmod和JavaScript中%.

即使是使用此操作的Google研究也会失败:http://www.google.com/search? q = 2.4 + mod +0.8

javascript php math

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

PHP版本的Javascript Modulus操作

我正在寻找Javascript模数(%)操作的PHP版本.我需要为我试图移植到PHP的一些映射算法得到这个.当我使用PHP的bcmod时,我的结果有些偏差.

这是我到目前为止所拥有的.

public static function mod($operand_str, $modulus_res)
{
    $arg_arr = array();
    $arg_arr = func_get_args();

    $operand_str = strval($operand_str);
    $modulus_res = strval($modulus_res);

    $retain_scale_bool = (!isset($arg_arr[2]) || $arg_arr[2] == '') ? false: $arg_arr[2];

    //get decimal
    $decimal_arr = array();
    $decimal_arr = explode('.', $operand_str);

    switch(true)
    {
        case ($retain_scale_bool == true):
            $modulus_new_res = bcmod($operand_str, $modulus_res);
            $modulus_new_res = $modulus_new_res.'.'.$decimal_arr[1];
        break;

        default:
            $modulus_new_res = bcmod($operand_str, $modulus_res);
    }

    return $modulus_new_res;
}
Run Code Online (Sandbox Code Playgroud)

仅作为一个例子.这是我得到的结果3.1432444%3:使用Javascript:0.14324439999999994 PHP:0 With My Function:0.1432444

我想用我的函数获取Javascript结果.

你能帮忙调整我的剧本吗?我不算数学,所以我不能把它带到模数运算的第一原理.

谢谢.

php modulus

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

编写一个计算零的递归函数

可以通过递归方法计算整数中的零数,该方法采用单个int参数并返回参数具有的零数.

所以:

zeroCount(1000)
Run Code Online (Sandbox Code Playgroud)

会回来:

3
Run Code Online (Sandbox Code Playgroud)

您可以通过执行以下操作从整数中删除最后一位:"12345/10"= 1234

您可以通过执行以下操作从整数中获取最后一位数:"12345%10"= 5

这是我到目前为止:

public static int zeroCount(int num)
{
    if(num % 10 == 0)
        return num;
    else
        return zeroCount(num / 10);
}
Run Code Online (Sandbox Code Playgroud)

有没有人有任何建议或想法帮助我解决这个功能?

java methods recursion function

0
推荐指数
2
解决办法
8038
查看次数