Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java和C中防止浮点和双精度浮点被截断?_Java_C_Floating Point - Fatal编程技术网

如何在Java和C中防止浮点和双精度浮点被截断?

如何在Java和C中防止浮点和双精度浮点被截断?,java,c,floating-point,Java,C,Floating Point,当我给Java和C大的浮点和双精度(在十亿范围内)时,它们会将它们转换为科学记数法,在这个过程中会丢失精度。如何停止这种行为?对于Java,请查看转换为科学记数法纯粹是对其显示方式的影响。更改显示取决于如何输出(格式说明符) 浮点数通常有6位数的精度,这使得它们不适合持有数十亿的数字。Double大约有15位精度,所以它应该能够完全准确地保存超过万亿的数字 要在C中显示双精度: printf("%10f", dbl); 你试过把它们当作线传递吗?它们将保持不变。

当我给Java和C大的浮点和双精度(在十亿范围内)时,它们会将它们转换为科学记数法,在这个过程中会丢失精度。如何停止这种行为?

对于Java,请查看

转换为科学记数法纯粹是对其显示方式的影响。更改显示取决于如何输出(格式说明符)

浮点数通常有6位数的精度,这使得它们不适合持有数十亿的数字。Double大约有15位精度,所以它应该能够完全准确地保存超过万亿的数字

要在C中显示双精度:

printf("%10f", dbl);

你试过把它们当作线传递吗?它们将保持不变。