当我给Java和C大浮点数和双倍数(在十亿范围内)时,它们将它们转换为科学记数法,在此过程中失去了精确度.我怎么能阻止这种行为?
对于Java,请查看BigDecimal
转换为科学记数法纯粹是对它如何显示的影响.更改显示是一个输出方式(格式说明符)
浮动通常具有大约6位数的精度,这使得它们不适合保持数十亿的数字.双打有大约15位数的精度,所以它应该能够完全准确地保持数字超过数万亿.
要在C中显示双精度:
printf("%10f", dbl);