我目前正试图弄清楚如何使用PHP中的任意精度数字.所以我想我的第一个问题是究竟什么是任意精度数学.我试着谷歌搜索一个很好的定义,但由于某种原因,没有人可以用简单的语言.
其次,PHP中的BCMath和GMP库有什么区别?我听说GMP的API是"更新鲜",但是我很高兴.一个更好吗?
我最后的问题是BCMath/GMP需要什么类型的数字.显然它需要字符串形式的正常整数(例如"5.34"),但我已经看到BCMath函数直接用于表示常规整数的八位字节字符串的实现(例如"\ x12\x23\x45\x67"),其中我听说被称为"bigint",但谷歌再也没有给我带来任何好处.
已有解决方案用于在JavaScript中提取公钥和加密消息,但我无法弄清楚如何解密消息或检查签名.有任何想法吗?
从我所看到的,已经存在实际解密消息的功能,现在只需要提取私钥以便可以对消息进行签名.如果我错了,请纠正我,但看起来第1步是解密密钥字符串,然后获取MPI(多精度整数),然后将其分成素数和解密器,可以传递给解密功能.
所以我有以下代码:
#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)