float 类型

本文内容

浮点数使用 IEEE(电气和电子工程师协会)格式。 浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。 尾数表示一个介于 1.0 和 2.0 之间的数。 由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。 此表示形式为 float 类型提供了一个大约在 3.4E-38 和 3.4E+38 之间的范围。

您可根据应用程序的需求将变量声明为 float 或 double。 这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。 下表显示了基数与存储需求之间的关系。

浮点类型类型有效位字节数

float

6 - 7

double

15 - 16

浮点变量由尾数(包含数字的值)和指数(包含数字的数量级)表示。

下表显示了分配给每个浮点类型的尾数和指数的位数。 任何 float 或 double 的最高有效位始终是符号位。 如果符号位为 1,则将数字视为负数;否则,将数字视为正数。

指数和尾数的长度类型指数长度尾数长度

float

8 位

23 位

double

11 位

52 位

由于指数是以无符号形式存储的,因此指数的偏差为其可能值的一半。 对于 float 类型,偏差为 127;对于 double 类型,偏差为 1023。 您可以通过将指数值减去偏差值来计算实际指数值。

存储为二进制分数的尾数大于或等于 1 且小于 2。 对于 float 和 double 类型,最高有效位位置的尾数中有一个隐含的前导 1,这样,尾数实际上分别为 24 和 53 位长,即使最高有效位从未存储在内存中也是如此。

浮点包可以将二进制浮点数存储为非标准化数,而不使用刚刚介绍的存储方法。 “非标准化数”是带有保留指数值的非零浮点数,其中尾数的最高有效位为 0。 通过使用非标准化格式,浮点数的范围可以扩展,但会失去精度。 您无法控制浮点数以标准化形式还是非标准化形式表示;浮点包决定了表示形式。 浮点包从不使用非标准化形式,除非指数变为小于可以标准化形式表示的最小值。

下表显示了可在每种浮点类型的变量中存储的最小值和最大值。 此表中所列的值仅适用于标准化浮点数;非标准化浮点数的最小值更小。 请注意,在 80x87 寄存器中保留的数字始终以 80 位标准化形式表示;数字存储在 32 位或 64 位浮点变量(float 类型和 long 类型的变量)中时只能以非标准化形式表示。

浮点类型的范围类型最小值最大值

浮动

1.175494351 E - 38

3.402823466 E + 38

double

2.2250738585072014 E - 308

1.7976931348623158 E + 308

如果存储比精度更重要,请考虑对浮点变量使用 float 类型。 相反,如果精度是最重要的条件,则使用 double 类型。

浮点变量可以提升为更大基数的类型(从 float 类型到 double 类型)。 当您对浮点变量执行算术时,通常会出现提升。 此算术始终以与具有最高精度的变量一样高的精度执行。 例如,请考虑下列类型声明:

float f_short;
double f_long;
long double f_longer;
f_short = f_short * f_long;

在前面的示例中,变量 f_short 提升到类型 double 并且与 f_long 相乘;然后,结果舍入到类型 float,然后赋给 f_short。

在以下示例中(使用前面示例中的声明),将以浮点(32 位)精度对变量执行算术;结果随后将提升到 double 类型:

f_longer = f_short * f_short;

请参阅

基本类型的存储

PHP 中的 header location

本文将介绍 header() 函数的概念及其在 PHP 中的语法。它将涵盖在 PHP 中编写标题的规则。此方法也适用于 Content-Type 和 Content-Disposition 标头。

我们还将在本文中介绍 location: 标头字符串。我们将解释 PHP 中 location header 的用法和本质。本文将演示标头位置如何发送响应代码并将浏览器重定向到另一个页面。

PHP 中 Header() 函数及其语法介绍

header() 函数是一个内置的 PHP 函数,它允许我们向客户端发送原始 HTTP 标头。发送的标头采用原始形式。我们应该在发送任何输出之前调用 header() 函数。任何形式的输出,如 HTML 标签或 PHP 表单发送的输出,都应该在发送标头信息之前被丢弃。因此我们可以在任何输出之前控制服务器发送到浏览器的信息。

header() 函数的语法是:header(string,replace,http_response_code);。该函数接受三个参数。第一个参数是标题字符串。有两种类型的标题字符串。第一种类型是以 HTTP/开头的字符串。它指定要发送到浏览器的 HTTP 代码。标题字符串的第二种类型是 location: 标题,它将浏览器重定向到指定的位置。函数中的下一个参数是 replace,它表示一个布尔值。它是一个可选参数,用于确定标头是否应替换之前的相似标头。第三个参数 http_response code 也是一个可选参数,用于强制 HTTP 响应代码为指定值。

例如,创建一个 header() 函数并将标题字符串用作 Content-Type。将 Content-Type 的值写为 application/pdf。再次创建另一个 header() 函数。这一次,将标题字符串写为 Content-Disposition。将字符串的值指定为 attachment。不要忘记在它后面加一个分号。在分号后写入另一个属性 filename,并将文件名提供为 download.pdf。

当我们运行以下脚本时,会出现一个下载对话框。它要求你下载名为 download.pdf 的 pdf 文件。第一个标题表示文件应该是 pdf 格式,第二个标题表示文件的文件名并强制浏览器显示对话框以保存文件。

示例代码:

#php 7.x
php
header('Content-Type: application/pdf'); 
header('Content-Disposition: attachment; filename="downloaded.pdf"');
?>

在 PHP 中使用 header() 函数和 location: 标题字符串

我们可以将 header() 函数与 PHP 中的 location: 头字符串一起使用。标头字符串将网页重定向到指定的位置。它通常用于网页中,在提交输入后将用户重定向到特定页面。例如,当用户在登录时输入正确的凭据时,我们可以使用标头位置将它们重定向到主页。我们可以在 header() 函数中指定布尔值和响应代码。但是,这些参数是可选的。默认的布尔值为 true,这意味着它将替换之前的类似标题。我们还可以提供响应代码作为第三个参数。默认响应代码是 302。例如,我们可以将一个数组写入一个文件,并将当前页面重定向到另一个显示文件已写入消息的页面。我们可以使用 file_put_contents() 函数写入文件。

例如,在 $day 变量上创建一个数组。将键创建为 weather 和 time,将相应的值创建为 Sunny 和 1:30 pm。然后使用 file_input_contents() 并指定一个文件 file.txt 作为第一个参数。使用 print_r() 函数作为第二个参数。提供变量 $day 和布尔值 true 作为 print_r() 函数的参数。使用 if 条件评估整个表达式。在 if 块内使用 header() 函数。在函数内将位置指定为 message.php。使用冒号 : 指定位置。请注意,location 和 : 冒号之间不应有任何间隙。创建一个 PHP 文件 message.php。在文件中显示一条消息,说明文件已被写入。

在上面的例子中,数组被写入文件 file.txt。if 条件评估为真,header() 函数将位置重定向到 message.php。因此,显示了输出。我们还可以在地址栏中看到更改后的 URL。如果在现有的标头函数下面还有另一个标头函数,则后一个标头将替换前一个标头。这是因为在 header() 函数中,replace 选项的默认值为 true。

代码示例:

#php 7.x
php
$day = array (
    'weather' => 'Sunny',
    'time' => '1:30 pm',
);
if(file_put_contents('file.txt', print_r($day, true))){
    header("location: message.php");
}
?>

输出:

The file has been written.

本站内容来自用户投稿,如果侵犯了您的权利,请与我们联系删除。联系邮箱:835971066@qq.com

本文链接:http://news.xiuzhanwang.com/post/2918.html

发表评论

评论列表

还没有评论,快来说点什么吧~

友情链接: