请考虑以下代码:
0.1 + 0.2 == 0.3  ->  false
0.1 + 0.2         ->  0.30000000000000004
为什么会出现这些不准确之处?
我有以下虚拟测试脚本:
function test() {
  var x = 0.1 * 0.2;
  document.write(x);
}
test();这将打印结果0.020000000000000004,只应打印0.02(如果您使用计算器).据我所知,这是由于浮点乘法精度的误差.
有没有人有一个很好的解决方案,以便在这种情况下,我得到正确的结果0.02?我知道有类似的功能toFixed或舍入将是另一种可能性,但我想真正打印整个数字没有任何切割和舍入.只是想知道你们其中一个人是否有一些漂亮,优雅的解决方案.
当然,否则我会转到大约10位左右.
我们正在用VB.NET和SQL Server重写我们的旧会计系统.我们引入了一个新的.NET/SQL程序员团队来进行重写.大多数系统已经使用Floats完成了Dollar数量.我编程的遗留系统语言没有Float,所以我可能会使用Decimal.
你有什么建议?
Float或Decimal数据类型应该用于美元金额吗?
两者的优点和缺点有哪些?
在我们的日常scrum中提到的一个骗局是,当你计算一个返回超过两个小数位的结果的金额时,你必须要小心.听起来你必须将金额四舍五入到小数点后两位.
另一个Con是所有显示和打印金额必须有一个显示两个小数位的格式声明.我注意到有几次没有这样做,金额看起来不正确.(即10.2或10.2546)
专家是Float只占用磁盘上的8个字节,其中Decimal占用9个字节(十进制12,2)
我正在为一家面料商店建造一个计算量很大的购物车,并且发现自己需要对用户输入的长度*每米的基本价格进行计算,然后检查结果以查看它是否是模式长度的倍数.如果它不是倍数,我需要找到最接近的模式长度倍数并将结果更改为.
我还需要能够在PHP中完成相同的计算,但如果有人可以帮我解决数学问题,我可以移植任何需要自己翻译的东西.
我正在使用jQuery 1.6.2并且已经完成了计算的第一部分,我只需要根据模式长度检查(米*价格)的结果.
任何帮助非常感谢
编辑:这些计算都涉及价格和模式长度的2位小数.用户输入的长度也可以包含小数.
我想知道如何在javascript中减去两个负浮点数.我试过了:
alert(-0.2-0.1);
结果是-0.30000000000000004.难道我做错了什么?我该怎么做-0.3?
Javascript Math trigonomerial methos返回错误的结果.尝试
alert(Math.sin(Math.PI));
它不会返回0.
也许问题是javascript十进制数精度.是否有任何工作量可以得到正确的结果?
为什么模数计算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版本.我需要为我试图移植到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;
}
仅作为一个例子.这是我得到的结果3.1432444%3:使用Javascript:0.14324439999999994 PHP:0 With My Function:0.1432444
我想用我的函数获取Javascript结果.
你能帮忙调整我的剧本吗?我不算数学,所以我不能把它带到模数运算的第一原理.
谢谢.
可以通过递归方法计算整数中的零数,该方法采用单个int参数并返回参数具有的零数.
所以:
zeroCount(1000)
会回来:
3
您可以通过执行以下操作从整数中删除最后一位:"12345/10"= 1234
您可以通过执行以下操作从整数中获取最后一位数:"12345%10"= 5
这是我到目前为止:
public static int zeroCount(int num)
{
    if(num % 10 == 0)
        return num;
    else
        return zeroCount(num / 10);
}
有没有人有任何建议或想法帮助我解决这个功能?
javascript ×5
math ×4
php ×2
accounting ×1
currency ×1
function ×1
java ×1
jquery ×1
methods ×1
modulo ×1
modulus ×1
python ×1
recursion ×1
sql-server ×1
vb.net ×1