有没有一种方法可以将双精度数转换为整数,而又不会在过程中冒任何意外错误的风险?我在《编程-使用C ++的原理和实践》(由c ++的创建者写的一本书)中读到,不能将双精度数转换为整数,但是我将其用于测试,它可以在大约80%的时间内正确转换。如果可能的话,没有任何风险的最佳方法是什么?
因此,例如,此转换正确。
double bruh = 10.0;
int a = bruh;
cout << bruh << "\n";
但这不是。
double bruh = 10.9;
int a = bruh;
cout << bruh << "\n";
简而言之,它不会自动舍入,因此我认为这就是“不安全”的原因。
不可能将所有双精度数转换为整数,而不会丢失数据。
首先,如果双精度数包含小数部分(42.9),则该小数部分将丢失。
其次,双精度值可以容纳的值范围比大多数整数大得多,大约在1.7e308左右,因此,当您获得较大的值时,根本无法将它们存储为整数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句