小数点以下の桁を削除する必要がありますが、すべてではありません。
たとえば、double dig=3.1459038585 を dig=3.14 に変換する必要があります
100 まで複数回掘り、それを整数に変換してから、再度 double に変換して 100 に削除する必要があると思います (これはすべて 1 行になります)。しかし、これをより速く行う機能はありますか?
小数点以下の桁を削除する必要がありますが、すべてではありません。
たとえば、double dig=3.1459038585 を dig=3.14 に変換する必要があります
100 まで複数回掘り、それを整数に変換してから、再度 double に変換して 100 に削除する必要があると思います (これはすべて 1 行になります)。しかし、これをより速く行う機能はありますか?
この機能を実装する関数はより柔軟になり、そのため定義上遅くなります。そうです、これを書いてください:
double truncated = (double)((int)dig*100)/100;
いずれにせよ、すべて CPU ネイティブの操作であるため、特にインライン化またはマクロとして使用する場合は、ほとんどクロック サイクルを消費しません。
#include <cmath>
#include <iostream>
int main()
{
double d = 3.1459038585;
std::cout << std::floor(d * 100.) / 100. << std::endl;
}