我想以一些精确的形式回答我的答案,但不是出于输入输出目的。
float a = cos ( 90*(PI/180))
gives 1.794897E-09
我想在我的变量中输入最多8位小数,这将给出
0.00000000
setprecision或其他方法无助于将值存储在变量中。怎么存储?基本上它甚至可能不是8或9位数...我想要的是在我的答案中限制exponentiol形式
答案 0 :(得分:0)
您受所使用类型的限制。单个精度浮点数只能表示6到9个有效十进制数字。
https://en.wikipedia.org/wiki/Single-precision_floating-point_format
请记住,float不是十进制值。所以你看到的是十进制表示。如果您想要十进制表示中的更多数字,请使用双精度。
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
双精度浮点数可以表示15-17位小数精度的值。这应该保证你需要的最少8个。
答案 1 :(得分:0)
浮点值的精度和编码由IEEE 754具体定义。如果没有定义你自己的浮点实现应该存储在内存中,你不能真正改变内存的精度,如何编码和存储在内存中。
如果您想要更高的精确度,可以使用 double 。所有数学函数都适用于双打。