小编par*_*446的帖子

PHP中的任意精度数学

我目前正试图弄清楚如何使用PHP中的任意精度数字.所以我想我的第一个问题是究竟什么是任意精度数学.我试着谷歌搜索一个很好的定义,但由于某种原因,没有人可以用简单的语言.

其次,PHP中的BCMath和GMP库有什么区别?我听说GMP的API是"更新鲜",但是我很高兴.一个更好吗?

我最后的问题是BCMath/GMP需要什么类型的数字.显然它需要字符串形式的正常整数(例如"5.34"),但我已经看到BCMath函数直接用于表示常规整数的八位字节字符串的实现(例如"\ x12\x23\x45\x67"),其中我听说被称为"bigint",但谷歌再也没有给我带来任何好处.

php biginteger gmp bcmath arbitrary-precision

12
推荐指数
2
解决办法
3797
查看次数

在Javascript中检查GPG签名

已有解决方案用于在JavaScript中提取公钥和加密消息,但我无法弄清楚如何解密消息或检查签名.有任何想法吗?

从我所看到的,已经存在实际解密消息的功能,现在只需要提取私钥以便可以对消息进行签名.如果我错了,请纠正我,但看起来第1步是解密密钥字符串,然后获取MPI(多精度整数),然后将其分成素数和解密器,可以传递给解密功能.

javascript gnupg google-chrome-extension

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

单精度和双精度铸造提供不同的答案

所以我有以下代码:

#include <iostream>
int main(){
    float number = 0.6;
    int anotherNumber = 20;
    int value = (int) ((float) anotherNumber * number);
    std::cout << value;
    std::cin.get();
}
Run Code Online (Sandbox Code Playgroud)

它给出12,就像它应该考虑20*0.6 = 12.但是,如果我将所有浮点数改为双打:

#include <iostream>
int main(){
    double number = 0.6;
    int anotherNumber = 20;
    int value = (int) ((double) anotherNumber * number);
    std::cout << value;
    std::cin.get();
}
Run Code Online (Sandbox Code Playgroud)

它给了我11个.并且为了使事情变得更加奇怪,如果我更改代码以使值首先存储在变量中然后再存储在变量中,它会再次给出正确的答案(12).

#include <iostream>
int main(){
    double number = 0.6;
    int anotherNumber = 20;
    double intermediate = (double) anotherNumber * number;
    int value = (int) intermediate;
    std::cout …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point casting

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