分享
 
 
 

11.1.5 Floating point types

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

11.1.5 Floating point types

C# supports two floating-point types: float and double. The float and double

types are represented

using the 32-bit single-precision and 64-bit double-precision IEC 60559

formats, which provide the

following sets of values:

Chapter 11 Types

93

?Positive zero and negative zero. In most situations, positive zero and

negative zero behave identically as

the simple value zero, but certain operations distinguish between the two (?

4.7.2).

?Positive infinity and negative infinity. Infinities are produced by such

operations as dividing a non-zero

number by zero. [Example: For example, 1.0 / 0.0 yields positive infinity,

and .1.0 / 0.0 yields

negative infinity. end example]

?The Not-a-Number value, often abbreviated NaN. NaNs are produced by

invalid floating-point

operations, such as dividing zero by zero.

?The finite set of non-zero values of the form s ?m ?2e, where s is 1 or

-1, and m and e are determined

by the particular floating-point type: For float, 0 < m < 224 and -149 = e

= 104, and for double,

0 < m < 253 and -1075 = e = 970. Denormalized floating-point numbers are

considered valid non-zero

values.

The float type can represent values ranging from approximately 1.5 ?10-45

to 3.4 ?1038 with a precision

of 7 digits.

The double type can represent values ranging from approximately 5.0 ?

10-324 to 1.7 ?10308 with a

precision of 15.16 digits.

If one of the operands of a binary operator is of a floating-point type,

then the other operand must be of an

integral type or a floating-point type, and the operation is evaluated as

follows:

?If one of the operands is of an integral type, then that operand is

converted to the floating-point type of

the other operand.

?Then, if either of the operands is of type double, the other operand is

converted to double, the

operation is performed using at least double range and precision, and the

type of the result is double

(or bool for the relational operators).

?Otherwise, the operation is performed using at least float range and

precision, and the type of the

result is float (or bool for the relational operators).

The floating-point operators, including the assignment operators, never

produce exceptions. Instead, in

exceptional situations, floating-point operations produce zero, infinity,

or NaN, as described below:

?If the result of a floating-point operation is too small for the

destination format, the result of the

operation becomes positive zero or negative zero.

?If the result of a floating-point operation is too large for the

destination format, the result of the

operation becomes positive infinity or negative infinity.

?If a floating-point operation is invalid, the result of the operation

becomes NaN.

?If one or both operands of a floating-point operation is NaN, the result

of the operation becomes NaN.

Floating-point operations may be performed with higher precision than the

result type of the operation.

[Example: For example, some hardware architectures support an .extended. or

.long double. floating-point

type with greater range and precision than the double type, and implicitly

perform all floating-point

operations using this higher precision type. Only at excessive cost in

performance can such hardware

architectures be made to perform floating-point operations with less

precision, and rather than require an

implementation to forfeit both performance and precision, C# allows a

higher precision type to be used for

all floating-point operations. Other than delivering more precise results,

this rarely has any measurable

effects. However, in expressions of the form x * y / z, where the

multiplication produces a result that is

outside the double range, but the subsequent division brings the temporary

result back into the double

range, the fact that the expression is evaluated in a higher range format

may cause a finite result to be

produced instead of an infinity. end example]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有